[Gluster-devel] Potential Memory Leak?
August R. Wohlt
glusterfs at isidore.net
Sat Nov 10 15:46:51 UTC 2007
HI Krishna,
I am also wondering about memory. I restart glusterfs every night
because it grows to 800MB of memory when I try to copy some backups to
the mount because I don't have very much memory. Is this a typical
memory footprint? Is there a way to limit how much memory will be used
by either the client or the server?
This is a brand new x86_64 Centos 5.0 box, compiled with
fuse-2.7.0-glfs5 and glusterfs-1.3.7
Here's an example from top in the middle of my current backups:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
30880 root 15 0 695m 613m 760 R 12 7.7 86:26.78
glusterfs
The backup is just an rsync to the mount of about 5 million files.
The client spec is a simple one:
volume brick
type protocol/client
option transport-type tcp/client # for TCP/IP transport
option remote-host 192.168.2.5 # IP address of the remote brick
option remote-port 6996
option remote-subvolume brick_thr # name of the remote volume
end-volume
volume brick-wb
type performance/write-behind
subvolumes brick
end-volume
volume readahead
type performance/read-ahead
subvolumes brick-wb
end-volume
it goes to one simple server, which uses a lot of memory as well:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
22929 root 15 0 452m 242m 764 S 6 12.1 132:02.51
glusterfsd
its spec file is:
volume brick_posix
type storage/posix
option directory /home/3dm/pool/brick
end-volume
volume brick_locks
type features/posix-locks
subvolumes brick_posix
end-volume
volume brick_thr
type performance/io-threads
option thread-count 16
subvolumes brick_locks
end-volume
volume server
type protocol/server
option transport-type tcp/server # For TCP/IP transport
option bind-address 192.168.2.5 # Default is to listen on all
interfaces
option listen-port 6996
subvolumes brick_thr
option auth.ip.brick_thr.allow * # Allow access to "brick" volume
end-volume
thanks,
:august
On 10/24/07, Krishna Srinivas <krishna at zresearch.com> wrote:
> Hi Karl,
>
> Your glusterfsd config is simple with only 4 translators.
>
> Is the problem seen every time you run your script?
>
> Can you run the script using a simpler client config file? just
> connect the client to a single server (no afr/unify etc on the
> client side)
>
> just have the folloing in your client spec and see if the glusterfsd
> memory grows:
>
> ---
>
> volume sxx04
> type protocol/client
> option transport-type tcp/client
> option remote-host sxx04b
> option remote-subvolume brick
> end-volume
>
> ----
>
>
>
> On 10/23/07, Karl Bernard <karl at vomba.com> wrote:
> > Hello Krishna,
> >
> > I have 5 servers running the client and 4 servers running the brick
> > server. In the config I was testing, only 3 of the brick servers are used.
> >
> > I have scripts running on the 5 servers that open images of 5k to 20k
> > and create thumbnails for those images of about 4k. All files are
> > written in a hash directory structure.
> >
> > After reading and creating a lot of files (1 million for example), I
> > can see that the memory usage for the glusterfsd have grown substancially.
> >
> > Software versions:
> > glusterfs-1.3.4
> > fuse-2.7.0-glfs4
> >
> > <<-- glusterfs-server.vol -->>
> > volume brick-posix
> > type storage/posix
> > option directory /data/glusterfs/dataspace
> > end-volume
> >
> > volume brick-ns
> > type storage/posix
> > option directory /data/glusterfs/namespace
> > end-volume
> >
> > volume brick
> > type performance/io-threads
> > option thread-count 2
> > option cache-size 32MB
> > subvolumes brick-posix
> > end-volume
> >
> > volume server
> > type protocol/server
> > option transport-type tcp/server
> > subvolumes brick brick-ns
> > option auth.ip.brick.allow 172.16.93.*
> > option auth.ip.brick-ns.allow 172.16.93.*
> > end-volume
> > <<-- end of glusterfs-server.vol -->>
> >
> > <<-- start client.sharedbig.vol -->>
> > volume sxx01-ns
> > type protocol/client
> > option transport-type tcp/client
> > option remote-host sxx01b
> > option remote-subvolume brick-ns
> > end-volume
> >
> > volume sxx02-ns
> > type protocol/client
> > option transport-type tcp/client
> > option remote-host sxx02b
> > option remote-subvolume brick-ns
> > end-volume
> >
> > volume sxx03-ns
> > type protocol/client
> > option transport-type tcp/client
> > option remote-host sxx03b
> > option remote-subvolume brick-ns
> > end-volume
> >
> > volume sxx04-ns
> > type protocol/client
> > option transport-type tcp/client
> > option remote-host sxx04b
> > option remote-subvolume brick-ns
> > end-volume
> >
> > volume sxx01
> > type protocol/client
> > option transport-type tcp/client
> > option remote-host sxx01b
> > option remote-subvolume brick
> > end-volume
> >
> > volume sxx02
> > type protocol/client
> > option transport-type tcp/client
> > option remote-host sxx02b
> > option remote-subvolume brick
> > end-volume
> >
>
>
> _______________________________________________
> Gluster-devel mailing list
> Gluster-devel at nongnu.org
> http://lists.nongnu.org/mailman/listinfo/gluster-devel
>
More information about the Gluster-devel
mailing list