[Gluster-devel] Memory leak(?) in GlusterFS TLA 2.5-patch-616
    Sam Douglas 
    sam.douglas32 at gmail.com
       
    Tue Dec 18 00:43:16 UTC 2007
    
    
  
I have come across a fairly large memory leak(?) in glusterfsd using
the supplied configuration when doing many rewrites (read a block of
data, change it, write block back).  This results in one of the
glusterfsd processes consuming very large amounts of the machines
memory (95% ish).
It seems to occur when readahead and writebehind are loaded above
Unify on the client, which connects to two remote AFR volumes.
This occurs in glusterfs--main--2.5--patch-616.
I have been able to replicate the problem on Debian Etch machines,
using a fuse-2.7.0 compiled from source and a recent kernel and the
following configurations.
The attached benchmark program can be used to cause the problem
    rewrite_test --blocksize 8192 --count 8192 /mnt/foobar
should do it. Bonnie will also cause the problem when it does its rewrite test.
    Sam Douglas
-- Config Files --
--- Client ---
volume clientA
	type protocol/client
	option transport-type tcp/client
	option remote-host 10.0.0.19
	option remote-subvolume afr
end-volume
volume clientB
	type protocol/client
	option transport-type tcp/client
	option remote-host 10.0.0.20
	option remote-subvolume afr
end-volume
volume namespace
	type protocol/client
	option transport-type tcp/client
	option remote-host 10.0.0.19
	option remote-subvolume namespace
end-volume
volume unify
	type cluster/unify
	option namespace namespace
	option scheduler rr
	subvolumes clientA clientB
end-volume
volume unify-wb
	type performance/write-behind
	option aggregate-size 128K
	subvolumes unify
end-volume
volume unify-ra
	type performance/read-ahead
	option page-size 65536
	option page-count 32
	subvolumes unify-wb
end-volume
--- Server (10.0.0.19) ---
volume brick1
	type storage/posix
	option directory /stuff/test1
end-volume
volume brick2
	type storage/posix
	option directory /stuff/test2
end-volume
volume namespace
	type storage/posix
	option directory /stuff/test-namespace
end-volume
volume client1
	type protocol/client
	option transport-type tcp/client
	option remote-host 10.0.0.20
	option remote-subvolume brick1
end-volume
volume afr
	type cluster/afr
	subvolumes brick1 client1
end-volume
volume server
	type protocol/server
	option transport-type tcp/server
	option auth.ip.afr.allow *
	option auth.ip.brick1.allow *
	option auth.ip.brick2.allow *
	option auth.ip.namespace.allow *
	subvolumes afr brick1 brick2 namespace
end-volume
--- Server (10.0.0.20) ---
volume brick1
	type storage/posix
	option directory /stuff/test1
end-volume
volume brick2
	type storage/posix
	option directory /stuff/test2
end-volume
volume client2
	type protocol/client
	option transport-type tcp/client
	option remote-host 10.0.0.19
	option remote-subvolume brick2
end-volume
volume afr
	type cluster/afr
	subvolumes client2 brick2
end-volume
volume server
	type protocol/server
	option transport-type tcp/server
	option auth.ip.afr.allow *
	option auth.ip.brick1.allow *
	option auth.ip.brick2.allow *
	subvolumes afr brick1 brick2
end-volume
    
    
More information about the Gluster-devel
mailing list