Re: Potential Memory Leak?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi August,

few days ago I followed a discussion on IRC. The result of it was, read-ahead xlator mem-leaks. I'm not sure if this is already resolved in lastest tla, but it seems you're facing this problem... Try to drop read-ahead xlator from your spec files and see if the memory footprint will stay reasonable...

Best Regards,
--
Kamil


August R. Wohlt wrote:
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@xxxxxxxxxxxxx> 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@xxxxxxxxx> 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@xxxxxxxxxx
http://lists.nongnu.org/mailman/listinfo/gluster-devel



_______________________________________________
Gluster-devel mailing list
Gluster-devel@xxxxxxxxxx
http://lists.nongnu.org/mailman/listinfo/gluster-devel




[Index of Archives]     [Gluster Users]     [Ceph Users]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux