[Gluster-users] Dubious write performance on simple "nfs" setup
Peter Gervai
grinapo at gmail.com
Mon Jun 22 21:34:38 UTC 2009
Hello,
Simple setup: one server one client. Client is using 2.6.26 (debian)
kernel but with the gluster-provided fuse module. (Without it the
performance is non-existant.)
# server confy
volume stor
type storage/posix
option directory /srv/glusterfs/
end-volume
volume locks
type features/posix-locks
option mandatory-locks on
subvolumes stor
end-volume
volume readahead
type performance/read-ahead
option page-count 2 # 4 # def 2
option force-atime-update off # def off
subvolumes locks
end-volume
volume cache
type performance/io-cache
option cache-size 128MB # default 32MB
option page-size 512KB # def 128KB
option cache-timeout 2 # def 1
subvolumes readahead
end-volume
volume threads
type performance/io-threads
option thread-count 16 # default 16
subvolumes cache
end-volume
-----------------------------------------
# gluster client confy
volume remote
type protocol/client
option transport-type tcp
option remote-host 1.1.1.1
option remote-subvolume brick
end-volume
volume cache
type performance/io-cache
option cache-size 1GB
option page-size 128KB
subvolumes remote
end-volume
volume threads
type performance/io-threads
# option thread-count 16 # default 16
subvolumes cache
end-volume
volume writebehind
type performance/write-behind
option flush-behind on # default is 'off', let's live dangerously
subvolumes threads
end-volume
-----------------------
bonnie++ say what reality backs:
Version 1.03d ------Sequential Output------ --Sequential Input- --Random-
-Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP
gluster-shlevin 4G 66262 90 3437 0 3778 0 35682 49 55111 3 383.6 0
------Sequential Create------ --------Random Create--------
-Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
files /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP
16 1165 2 3695 2 1621 2 1109 1 3787 2 1583 2
Basically sequential block output is extremely slow, and tiobench
helped it to narrow to block sizes below 64k. Below 64k performance is
around 2-3MB/s, above is the normal 60-65MB/s.
Dropping writebehind gave a performance "boost"... 2-3MB/s went up to
10-15MB/s, while, of course, putc performance went down to around
30MB/s.
However I cannot seem to be able to raise block performance below 64k
(especially around 4k) higher than 2-3MB/s (or 9-10MB/s without WB);
it basically doesn't change if I try to remove other translators.
CPU and network load seems to be low on both sides.
Local fuse test gives 70+MB/s for any IO.
Ideas? (Maybe more fuse tweaks? kernel variables?)
Thanks,
Peter
More information about the Gluster-users
mailing list