Bug 1439731
Summary: | Sharding: Fix a performance bug | ||
---|---|---|---|
Product: | [Red Hat Storage] Red Hat Gluster Storage | Reporter: | Rejy M Cyriac <rcyriac> |
Component: | sharding | Assignee: | Krutika Dhananjay <kdhananj> |
Status: | CLOSED ERRATA | QA Contact: | RamaKasturi <knarra> |
Severity: | unspecified | Docs Contact: | |
Priority: | high | ||
Version: | rhgs-3.2 | CC: | amukherj, bugs, divya, kdhananj, knarra, rcyriac, rhs-bugs, sasundar, storage-qa-internal |
Target Milestone: | --- | Keywords: | ZStream |
Target Release: | RHGS 3.2.0 Async | ||
Hardware: | Unspecified | ||
OS: | Unspecified | ||
Whiteboard: | |||
Fixed In Version: | glusterfs-3.8.4-18.1 | Doc Type: | Bug Fix |
Doc Text: |
Previously, a bug in shard's in-memory cache invalidation in STAT fop was causing it to send lots of LOOKUPs as part of cache-invalidation, even when the file was not undergoing any modification. As a consequence, every STAT call from the application is followed by a LOOKUP, leading to a sub-optimal performance of I/O operations on the VMs. With this fix, in-memory cache invalidation in shard's STAT operation was corrected. Now, in a pure-read workload, there was not as many LOOKUPs as the number of STATs, leading to improved VM performance. This also benefited performance in mixed read-write workload from the VMs.
|
Story Points: | --- |
Clone Of: | 1438706 | Environment: | |
Last Closed: | 2017-06-08 09:34:28 UTC | Type: | Bug |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: | |||
Bug Depends On: | 1436739, 1438706 | ||
Bug Blocks: |
Description
Rejy M Cyriac
2017-04-06 12:38:48 UTC
upstream patch : https://review.gluster.org/16961 Confirmed with the Dev ( Krutika ) that the fix is not intrusive and doesn't bring in much change. The basic functionality test should do good. Hi Krutika, I tested this with the patch what you have provided and i see the following results. With out this fix following are the numbers i see: ==================================================== Total lookups sent over the fuse mount are : 1057 Total lookups sent over the brick : 16273 There were ~1100 lookups from mount while the brick got > 16200 lookups. With the fix following are the numbers i see: ============================================== Total lookups sent over the fuse mount : 1280 Total lookups sent over the brick : 3037 There were ~1300 lookups from the mount while the brick got > 3000 lookups. Is this acceptable number? (In reply to RamaKasturi from comment #5) > Hi Krutika, > > I tested this with the patch what you have provided and i see the > following results. > > With out this fix following are the numbers i see: > ==================================================== > Total lookups sent over the fuse mount are : 1057 > > Total lookups sent over the brick : 16273 > > There were ~1100 lookups from mount while the brick got > 16200 lookups. > > With the fix following are the numbers i see: > ============================================== > > Total lookups sent over the fuse mount : 1280 > > Total lookups sent over the brick : 3037 How did you calculate the number of lookups received by the bricks? -Krutika > > There were ~1300 lookups from the mount while the brick got > 3000 lookups. > Is this acceptable number? (In reply to Krutika Dhananjay from comment #6) > (In reply to RamaKasturi from comment #5) > > Hi Krutika, > > > > I tested this with the patch what you have provided and i see the > > following results. > > > > With out this fix following are the numbers i see: > > ==================================================== > > Total lookups sent over the fuse mount are : 1057 > > > > Total lookups sent over the brick : 16273 > > > > There were ~1100 lookups from mount while the brick got > 16200 lookups. > > > > With the fix following are the numbers i see: > > ============================================== > > > > Total lookups sent over the fuse mount : 1280 > > > > Total lookups sent over the brick : 3037 > > How did you calculate the number of lookups received by the bricks? i checked the profile file for the data volume and under one of the brick i looked at "Interval 0 stats" and at the lookup column fop. Here is the output from the profile of data volume: ======================================================= http://pastebin.test.redhat.com/475027 > > -Krutika > > > > > There were ~1300 lookups from the mount while the brick got > 3000 lookups. > > Is this acceptable number? Verified and works fine with build glusterfs-3.8.4-18.1.el7rhgs.x86_64. Tested this with 3 vms, each of them hosted on a single hypervisor and below is the process which i followed for testing this. 1) Install HC with three hypervisors. 2) Create 1 vm on each of them. 3) Install fio on the vms. 4) Ran 80:20 workload on the vms initially, profiled the fuse mount and did not save the values as writes will also be involved in this. 5) Ran rand read 100 percent workload and profiled the fuse mount from all the three hyper visors. 1st iteration: ======================== Total look ups sent over the fuse mount : 785 Total looks up sent over brick are : 1131 2nd iteration: ====================== Total look up sent over the fuse mount : 810 Total looks up sent over the brick are : 1111 3rd iteration: ====================== Total look up sent over the fuse mount : 798 Total look up sent over the brick are : 1105 profile output from fuse and brick are present in the link below http://rhsqe-repo.lab.eng.blr.redhat.com/sosreports/HC/output_lookups/ Krutika, Could you please review and sign-off the edited doc text? Looks good to me. Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHBA-2017:1418 |