[Gluster-users] Very slow writes of many small files in NUFA configuration, is this expected?

Scott Martin scott at scottmartin.net
Thu Jan 14 22:49:27 UTC 2010


I'm trying to rsync a directory containing around 20K small files totaling
100 MB into a new Gluster volume.  I'm getting super-slow performance, with
the rsync taking on the order of an hour to complete.  Is this a normal
performance profile for writing many small files?  I mean, I understand that
writes will be slower than reads, but should it really be this slow?

I have two machines running the server and one of those machines mounting as
a client.  The rsync is going from the local disk on the second machine to
the Gluster volume.  The two machines are both in Amazon EC2, so their
network connection should not be a bottleneck.

Any help would be greatly appreciated.

Configuration files follow, mostly from here:
http://www.techforce.com.br/news/linux_blog/glusterfs_tuning_small_files


Server configuration:

volume posix
 type storage/posix
 option directory /mnt/gluster-files
end-volume

volume locks
  type features/locks
  subvolumes posix
end-volume

volume iothreads
 type performance/io-threads
 subvolumes locks
end-volume

volume writebehind
  type performance/write-behind
  option cache-size 1000MB    # default is equal to aggregate-size
  option flush-behind off    # default is 'off'
                # too aggressive and slow background flush!
                # do not enable for php sessions behaviour
  subvolumes iothreads
end-volume

volume brick
  type performance/io-cache
  option cache-size 2000MB        # default is 32MB
#  option priority *.h:3,*.html:2,*:1    # default is '*:0'
  option cache-timeout 1        # default is 1 second
  subvolumes writebehind
end-volume

volume server
 type protocol/server
 option transport-type tcp
 option auth.addr.brick.allow *
 subvolumes brick
end-volume



Client configuration:
volume master
 type protocol/client
 option transport-type tcp
 option remote-host 10.251.39.98
 option remote-subvolume brick
end-volume

volume slave01
 type protocol/client
 option transport-type tcp
 option remote-host 10.250.159.143
 option remote-subvolume brick
end-volume


volume nufa
 type cluster/nufa
 option local-volume-name slave01
 subvolumes master slave01
end-volume


volume iocache
  type performance/io-cache
  option cache-size 1000MB        # default is 32MB
  option cache-timeout 1                 # default is 1 second
  subvolumes nufa
end-volume

volume writeback
  type performance/write-behind
  option cache-size 500MB     # default is equal to aggregate-size
  option flush-behind off      # default is 'off'
                # too aggressive and slow background flush!
                # do not enable for php sessions behaviour
  subvolumes iocache
end-volume

volume quickread
  type performance/quick-read
  option cache-timeout 1         # default 1 second
  option max-file-size 256KB        # default 64Kb
  subvolumes writeback
end-volume

volume iothreads
  type performance/io-threads
  option thread-count 16 # default is 16
  subvolumes quickread
end-volume


More information about the Gluster-users mailing list