Major Hayden
2010-Aug-03 14:24 UTC
[Gluster-users] Increased performance for small files with debug/trace translator?
This has stumped me beyond belief. I'm actually getting *much better* small file performance with debug/trace added into the client-side volfile than without it. Here's what I did to test it: 1) Downloaded latest.tar.gz (current Wordpress tarball from wordpress.org) 2) tar xzf latest.tar.gz -C /mnt/glusterfs 3) rm -rf /mnt/glusterfs/wordpress 4) Added debug/trace translator in client volfile 5) Repeated steps 2 & 3 Initial test with my normal client volfile: Client volfile: http://pastie.org/1072935 untar: 32.999s removal: 4.540s Second test with debug/trace translator enabled: Client volfile: http://pastie.org/1072951 untar: 6.077s removal: 1.806s After several test runs, the subsequent results were within a few seconds of the initial run. Between each run, I alternated volfiles to include and exclude the debug/trace translator and then unmounted/mounted the GlusterFS volume If you compare the two volfiles, the *only* difference is that I added/removed in the debug/trace translator. I decided to do a third test in which I add one extra debug/trace translator for the second server as well: Client volfile: http://pastie.org/1072968 untar: 5.260s removal: 1.589s The performance is marginally better with debug/trace on both bricks. My client details: http://pastie.org/1072993 Server volfile: http://pastie.org/1072996 If anyone has any ideas, I'm all ears. -- Major Hayden major at mhtx.net
Jeff Darcy
2010-Aug-03 19:49 UTC
[Gluster-users] Increased performance for small files with debug/trace translator?
On 08/03/2010 10:24 AM, Major Hayden wrote:> Initial test with my normal client volfile: > Client volfile: http://pastie.org/1072935 > untar: 32.999s > removal: 4.540s > > Second test with debug/trace translator enabled: > Client volfile: http://pastie.org/1072951 > untar: 6.077s > removal: 1.806s > > ... > > If anyone has any ideas, I'm all ears.Major, Ed Wyse, and I figured this one out on IRC. It turns out that when the trace translator is enabled in the client volfile, it becomes the lowest and thus the one that's mounted . . . but it goes straight to server01 bypassing (among other things) mirror-0. In most cases this would result in a "dangling volume" error, but there's a bit of a bug in that the only real dangling volume is iocache and that particular translator - unlike most - doesn't produce a warning.