[Gluster-users] Replicate performance (cluster/replicate, performance/io-cache)

Alex Craven krei at it.net.au
Mon Sep 14 12:27:44 UTC 2009


Greetings,

I've just started experimenting with glusterfs and am new to this list, so
apologies if this has all been covered before! (a quick browse through the
archives didn't reveal anything though)

I'm attempting to use glusterfs to manage replication between a pair of
geographically separated test servers (communicating over an ssh tunnel).
I realise this isn't exactly an optimal configuration. However, I need
fast read performance but don't particularly care about write performance,
and it doesn't really matter if I'm reading 30-second-old data (my usage
is mainly for webserver replication, so the data won't be changing very
often anyway).

Now, I've set up gluster as per the attached configurations. I believe all
the appropriate performance translators are configured, notably including
the io-cache. The read-subvolume is set to a posix storage on the local
machine.

Still, in spite of the local read-subvolume and caching, successive read
operations on the same (tiny) file, well within the cache-timeout period
always take a minimum time equivalent to four round trips to complete.

Can anyone explain why this is? I understand there may be one transaction
to validate the cache, but what else is going on here? Furthermore, is it
possible to defer/disable this re-validation (within a timeout)
altogether?

Thanks in advance for any help!

Cheers,
Alex.


-- 
Alex Craven
krei at it.net.au
-------------- next part --------------
volume loopback
  type storage/posix
  option directory /cluster/test
end-volume

volume remote-achaemenes
 	type protocol/client
 	option transport-type tcp
 	option remote-host 127.0.0.1
 	option remote-port 6997
 	option remote-subvolume brick
	option username test_cluster
	option password xxxxxxxx
	option transport-timeout 10
end-volume

volume replicate
	type cluster/replicate
	subvolumes  loopback remote-achaemenes
	option read-subvolume loopback
	option lock-node loopback
	### DANGER BELOW! 
        # the following are set temporarily, in an attempt to identify the
        # cause of poor read performance issues
	option self-heal off
	option data-self-heal off
	option metadata-self-heal off
	option entry-self-heal off
	option data-change-log off
	option metadata-change-log off
	option entry-change-log off
	option data-lock-server-count 0
	option entry-lock-server-count 0
end-volume

volume writebehind
	type performance/write-behind
	option window-size 1MB
	option flush-behind on
	subvolumes replicate
end-volume

volume cache
	type performance/io-cache
	option cache-size 256MB
	subvolumes writebehind
	option priority *.php:3,*.html:2,*:1
	option cache-timeout 10
	option force-revalidate-timeout 30
	option force-atime-update off
end-volume
-------------- next part --------------
volume posix
  type storage/posix
  option directory /cluster/test
end-volume

volume locks
  type features/locks
  subvolumes posix
end-volume

volume brick
  type performance/io-threads
  option thread-count 8
  subvolumes locks
end-volume

volume server
  type protocol/server
  option transport-type tcp
  option auth.login.brick.allow test_cluster
  option auth.login.test_cluster.password xxxxxxxx
  option listen-port 6996
  option bind-address 127.0.0.1
  subvolumes brick
end-volume


More information about the Gluster-users mailing list