[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