[Bugs] [Bug 1309462] Upgrade from 3.7.6 to 3.7.8 causes massive drop in write performance. Fresh install of 3.7.8 also has low write performance

bugzilla at redhat.com bugzilla at redhat.com
Tue Feb 23 12:37:34 UTC 2016


https://bugzilla.redhat.com/show_bug.cgi?id=1309462



--- Comment #9 from Ravishankar N <ravishankar at redhat.com> ---
So it looks like there are different parts to the perf degradation between
3.7.6 and 3.7.8:

1. http://review.gluster.org/12953 went in for 3.7.7. With this fuse patch,
before every writev(), fuse sends a getxattr  for 'security.capability' to the
bricks. That is an extra FOP for every writev, which was not there in 3.7.6
where fuse returns the call with ENODATA without winding it to the bricks.

2.Now when the brick returns ENODATA for the getxattr, AFR does an inode
refresh which again triggers lookups and also seems to trigger data selfheal
(need to figure out why). It also goes ahead to wind the getxattr to the other
bricks of the replica. (all of them fail with ENODATA). All these are extra
FOPS which add to the latency.

Potential code fixes needed:
a) We need to figure out if 12953 can be reverted/ modified or do we explicty
want to wind the getxattr for security.capability. Poornima will work with
Michael for that.

b)In AFR if getxattr fails with ENODATA, we do not need to wind it to other
replica bricks (which would anyway fail with ENODATA).

c) Currently, before winding to the getxattr to other bricks, any triggered
self-heal will have to be completed. This is anyway going to be fixed with
http://review.gluster.org/#/c/13207/ where all client selfheals will be run in
background instead of blocking the FOPS.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
You are the assignee for the bug.


More information about the Bugs mailing list