[Gluster-devel] memory leaks

Brent A Nelson brent at phys.ufl.edu
Mon Mar 12 18:15:31 UTC 2007


Attached are my present spec files for both servers (which are also my 
clients); both machines use the same files.

To trigger the memory leak, all I need to do is a "dd if=/phys/blah0 
of=/dev/null bs=1M", where /phys/blah0 was created with "dd if=/dev/zero 
of=/phys/blah0 bs=10M count=1024".  It seems fine for a moment, but then 
glusterfs starts growing and growing until it can't claim any more RAM 
and becomes useless (can't ls the mountpoint, dd doesn't complete)...

Both machines are running Ubuntu Edgy + Fuse 2.6.3.

Thanks,

Brent

On Fri, 9 Mar 2007, Anand Avati wrote:

> Brent,
>  we are unable to get the memory leak in read-ahead (we found one and
> fixed, but your mail indicateds there is another). can you please mail
> your exact volume spec files and the command line to initiate the I/O
> which reproduces the leak?
>
> regards,
> avati
>
>
> On Fri, Mar 09, 2007 at 07:25:03PM -0500, Brent A Nelson wrote:
>> I just confirmed it on client-side, as well.  glusterfs was stable for a
>> minute, and then it suddenly started increasing in size very rapidly.
>>
>> Thanks,
>>
>> Brent
>>
>
-------------- next part --------------
volume disk0
  type storage/posix                   # POSIX FS translator
  option directory /share0             # Export this directory
end-volume
volume disk1
  type storage/posix                   # POSIX FS translator
  option directory /share1             # Export this directory
end-volume
volume disk2
  type storage/posix                   # POSIX FS translator
  option directory /share2             # Export this directory
end-volume
volume disk3
  type storage/posix                   # POSIX FS translator
  option directory /share3             # Export this directory
end-volume
volume disk4
  type storage/posix                   # POSIX FS translator
  option directory /share4             # Export this directory
end-volume
volume disk5
  type storage/posix                   # POSIX FS translator
  option directory /share5             # Export this directory
end-volume
volume disk6
  type storage/posix                   # POSIX FS translator
  option directory /share6             # Export this directory
end-volume
volume disk7
  type storage/posix                   # POSIX FS translator
  option directory /share7             # Export this directory
end-volume
volume disk8
  type storage/posix                   # POSIX FS translator
  option directory /share8             # Export this directory
end-volume
volume disk9
  type storage/posix                   # POSIX FS translator
  option directory /share9             # Export this directory
end-volume
volume disk10
  type storage/posix                   # POSIX FS translator
  option directory /share10            # Export this directory
end-volume
volume disk11
  type storage/posix                   # POSIX FS translator
  option directory /share11            # Export this directory
end-volume
volume disk12
  type storage/posix                   # POSIX FS translator
  option directory /share12            # Export this directory
end-volume
volume disk13
  type storage/posix                   # POSIX FS translator
  option directory /share13            # Export this directory
end-volume
volume disk14
  type storage/posix                   # POSIX FS translator
  option directory /share14            # Export this directory
end-volume
volume disk15
  type storage/posix                   # POSIX FS translator
  option directory /share15            # Export this directory
end-volume

volume share0
  type performance/io-threads
  option thread-count 8
  subvolumes disk0
end-volume

volume share1
  type performance/io-threads
  option thread-count 8
  subvolumes disk1
end-volume

volume share2
  type performance/io-threads
  option thread-count 8
  subvolumes disk2
end-volume

volume share3
  type performance/io-threads
  option thread-count 8
  subvolumes disk3
end-volume

volume share4
  type performance/io-threads
  option thread-count 8
  subvolumes disk4
end-volume

volume share5
  type performance/io-threads
  option thread-count 8
  subvolumes disk5
end-volume

volume share6
  type performance/io-threads
  option thread-count 8
  subvolumes disk6
end-volume

volume share7
  type performance/io-threads
  option thread-count 8
  subvolumes disk7
end-volume

volume share8
  type performance/io-threads
  option thread-count 8
  subvolumes disk8
end-volume

volume share9
  type performance/io-threads
  option thread-count 8
  subvolumes disk9
end-volume

volume share10
  type performance/io-threads
  option thread-count 8
  subvolumes disk10
end-volume

volume share11
  type performance/io-threads
  option thread-count 8
  subvolumes disk11
end-volume

volume share12
  type performance/io-threads
  option thread-count 8
  subvolumes disk12
end-volume

volume share13
  type performance/io-threads
  option thread-count 8
  subvolumes disk13
end-volume

volume share14
  type performance/io-threads
  option thread-count 8
  subvolumes disk14
end-volume

volume share15
  type performance/io-threads
  option thread-count 8
  subvolumes disk15
end-volume

volume server
  type protocol/server
  option transport-type tcp/server     # For TCP/IP transport
# option transport-type ib-sdp/server  # For Infiniband transport
# option bind-address 192.168.1.10     # Default is to listen on all interfaces
# option listen-port 6996               # Default is 6996
  option client-volume-filename /etc/glusterfs/glusterfs-client.vol
  subvolumes share0 share1 share2 share3 share4 share5 share6 share7 share8 share9 share10 share11 share12 share13 share14 share15
# NOTE: Access to any volume through protocol/server is denied by
# default. You need to explicitly grant access through # "auth"
# option.
  option auth.ip.share0.allow 128.227.64.*,128.227.89.*
  option auth.ip.share1.allow 128.227.64.*,128.227.89.*
  option auth.ip.share2.allow 128.227.64.*,128.227.89.*
  option auth.ip.share3.allow 128.227.64.*,128.227.89.*
  option auth.ip.share4.allow 128.227.64.*,128.227.89.*
  option auth.ip.share5.allow 128.227.64.*,128.227.89.*
  option auth.ip.share6.allow 128.227.64.*,128.227.89.*
  option auth.ip.share7.allow 128.227.64.*,128.227.89.*
  option auth.ip.share8.allow 128.227.64.*,128.227.89.*
  option auth.ip.share9.allow 128.227.64.*,128.227.89.*
  option auth.ip.share10.allow 128.227.64.*,128.227.89.*
  option auth.ip.share11.allow 128.227.64.*,128.227.89.*
  option auth.ip.share12.allow 128.227.64.*,128.227.89.*
  option auth.ip.share13.allow 128.227.64.*,128.227.89.*
  option auth.ip.share14.allow 128.227.64.*,128.227.89.*
  option auth.ip.share15.allow 128.227.64.*,128.227.89.*
end-volume
-------------- next part --------------
volume share0-0
  type protocol/client
  option transport-type tcp/client     # for TCP/IP transport
# option transport-type ib-sdp/client  # for Infiniband transport
  option remote-host 128.227.64.241    # IP address of the remote brick
# option remote-port 6996              # default server port is 6996
  option remote-subvolume share0       # name of the remote volume
end-volume
volume share0-1
  type protocol/client
  option transport-type tcp/client     # for TCP/IP transport
# option transport-type ib-sdp/client  # for Infiniband transport
  option remote-host 128.227.64.242    # IP address of the remote brick
# option remote-port 6996              # default server port is 6996
  option remote-subvolume share0       # name of the remote volume
end-volume
volume share1-0
  type protocol/client
  option transport-type tcp/client     # for TCP/IP transport
# option transport-type ib-sdp/client  # for Infiniband transport
  option remote-host 128.227.64.241    # IP address of the remote brick
# option remote-port 6996              # default server port is 6996
  option remote-subvolume share1       # name of the remote volume
end-volume
volume share1-1
  type protocol/client
  option transport-type tcp/client     # for TCP/IP transport
# option transport-type ib-sdp/client  # for Infiniband transport
  option remote-host 128.227.64.242    # IP address of the remote brick
# option remote-port 6996              # default server port is 6996
  option remote-subvolume share1       # name of the remote volume
end-volume
volume share2-0
  type protocol/client
  option transport-type tcp/client     # for TCP/IP transport
# option transport-type ib-sdp/client  # for Infiniband transport
  option remote-host 128.227.64.241    # IP address of the remote brick
# option remote-port 6996              # default server port is 6996
  option remote-subvolume share2       # name of the remote volume
end-volume
volume share2-1
  type protocol/client
  option transport-type tcp/client     # for TCP/IP transport
# option transport-type ib-sdp/client  # for Infiniband transport
  option remote-host 128.227.64.242    # IP address of the remote brick
# option remote-port 6996              # default server port is 6996
  option remote-subvolume share2       # name of the remote volume
end-volume
volume share3-0
  type protocol/client
  option transport-type tcp/client     # for TCP/IP transport
# option transport-type ib-sdp/client  # for Infiniband transport
  option remote-host 128.227.64.241    # IP address of the remote brick
# option remote-port 6996              # default server port is 6996
  option remote-subvolume share3       # name of the remote volume
end-volume
volume share3-1
  type protocol/client
  option transport-type tcp/client     # for TCP/IP transport
# option transport-type ib-sdp/client  # for Infiniband transport
  option remote-host 128.227.64.242    # IP address of the remote brick
# option remote-port 6996              # default server port is 6996
  option remote-subvolume share3       # name of the remote volume
end-volume
volume share4-0
  type protocol/client
  option transport-type tcp/client     # for TCP/IP transport
# option transport-type ib-sdp/client  # for Infiniband transport
  option remote-host 128.227.64.241    # IP address of the remote brick
# option remote-port 6996              # default server port is 6996
  option remote-subvolume share4       # name of the remote volume
end-volume
volume share4-1
  type protocol/client
  option transport-type tcp/client     # for TCP/IP transport
# option transport-type ib-sdp/client  # for Infiniband transport
  option remote-host 128.227.64.242    # IP address of the remote brick
# option remote-port 6996              # default server port is 6996
  option remote-subvolume share4       # name of the remote volume
end-volume
volume share5-0
  type protocol/client
  option transport-type tcp/client     # for TCP/IP transport
# option transport-type ib-sdp/client  # for Infiniband transport
  option remote-host 128.227.64.241    # IP address of the remote brick
# option remote-port 6996              # default server port is 6996
  option remote-subvolume share5       # name of the remote volume
end-volume
volume share5-1
  type protocol/client
  option transport-type tcp/client     # for TCP/IP transport
# option transport-type ib-sdp/client  # for Infiniband transport
  option remote-host 128.227.64.242    # IP address of the remote brick
# option remote-port 6996              # default server port is 6996
  option remote-subvolume share5       # name of the remote volume
end-volume
volume share6-0
  type protocol/client
  option transport-type tcp/client     # for TCP/IP transport
# option transport-type ib-sdp/client  # for Infiniband transport
  option remote-host 128.227.64.241    # IP address of the remote brick
# option remote-port 6996              # default server port is 6996
  option remote-subvolume share6       # name of the remote volume
end-volume
volume share6-1
  type protocol/client
  option transport-type tcp/client     # for TCP/IP transport
# option transport-type ib-sdp/client  # for Infiniband transport
  option remote-host 128.227.64.242    # IP address of the remote brick
# option remote-port 6996              # default server port is 6996
  option remote-subvolume share6       # name of the remote volume
end-volume
volume share7-0
  type protocol/client
  option transport-type tcp/client     # for TCP/IP transport
# option transport-type ib-sdp/client  # for Infiniband transport
  option remote-host 128.227.64.241    # IP address of the remote brick
# option remote-port 6996              # default server port is 6996
  option remote-subvolume share7       # name of the remote volume
end-volume
volume share7-1
  type protocol/client
  option transport-type tcp/client     # for TCP/IP transport
# option transport-type ib-sdp/client  # for Infiniband transport
  option remote-host 128.227.64.242    # IP address of the remote brick
# option remote-port 6996              # default server port is 6996
  option remote-subvolume share7       # name of the remote volume
end-volume
volume share8-0
  type protocol/client
  option transport-type tcp/client     # for TCP/IP transport
# option transport-type ib-sdp/client  # for Infiniband transport
  option remote-host 128.227.64.241    # IP address of the remote brick
# option remote-port 6996              # default server port is 6996
  option remote-subvolume share8       # name of the remote volume
end-volume
volume share8-1
  type protocol/client
  option transport-type tcp/client     # for TCP/IP transport
# option transport-type ib-sdp/client  # for Infiniband transport
  option remote-host 128.227.64.242    # IP address of the remote brick
# option remote-port 6996              # default server port is 6996
  option remote-subvolume share8       # name of the remote volume
end-volume
volume share9-0
  type protocol/client
  option transport-type tcp/client     # for TCP/IP transport
# option transport-type ib-sdp/client  # for Infiniband transport
  option remote-host 128.227.64.241    # IP address of the remote brick
# option remote-port 6996              # default server port is 6996
  option remote-subvolume share9       # name of the remote volume
end-volume
volume share9-1
  type protocol/client
  option transport-type tcp/client     # for TCP/IP transport
# option transport-type ib-sdp/client  # for Infiniband transport
  option remote-host 128.227.64.242    # IP address of the remote brick
# option remote-port 6996              # default server port is 6996
  option remote-subvolume share9       # name of the remote volume
end-volume
volume share10-0
  type protocol/client
  option transport-type tcp/client     # for TCP/IP transport
# option transport-type ib-sdp/client  # for Infiniband transport
  option remote-host 128.227.64.241    # IP address of the remote brick
# option remote-port 6996              # default server port is 6996
  option remote-subvolume share10      # name of the remote volume
end-volume
volume share10-1
  type protocol/client
  option transport-type tcp/client     # for TCP/IP transport
# option transport-type ib-sdp/client  # for Infiniband transport
  option remote-host 128.227.64.242    # IP address of the remote brick
# option remote-port 6996              # default server port is 6996
  option remote-subvolume share10      # name of the remote volume
end-volume
volume share11-0
  type protocol/client
  option transport-type tcp/client     # for TCP/IP transport
# option transport-type ib-sdp/client  # for Infiniband transport
  option remote-host 128.227.64.241    # IP address of the remote brick
# option remote-port 6996              # default server port is 6996
  option remote-subvolume share11      # name of the remote volume
end-volume
volume share11-1
  type protocol/client
  option transport-type tcp/client     # for TCP/IP transport
# option transport-type ib-sdp/client  # for Infiniband transport
  option remote-host 128.227.64.242    # IP address of the remote brick
# option remote-port 6996              # default server port is 6996
  option remote-subvolume share11      # name of the remote volume
end-volume
volume share12-0
  type protocol/client
  option transport-type tcp/client     # for TCP/IP transport
# option transport-type ib-sdp/client  # for Infiniband transport
  option remote-host 128.227.64.241    # IP address of the remote brick
# option remote-port 6996              # default server port is 6996
  option remote-subvolume share12      # name of the remote volume
end-volume
volume share12-1
  type protocol/client
  option transport-type tcp/client     # for TCP/IP transport
# option transport-type ib-sdp/client  # for Infiniband transport
  option remote-host 128.227.64.242    # IP address of the remote brick
# option remote-port 6996              # default server port is 6996
  option remote-subvolume share12      # name of the remote volume
end-volume
volume share13-0
  type protocol/client
  option transport-type tcp/client     # for TCP/IP transport
# option transport-type ib-sdp/client  # for Infiniband transport
  option remote-host 128.227.64.241    # IP address of the remote brick
# option remote-port 6996              # default server port is 6996
  option remote-subvolume share13      # name of the remote volume
end-volume
volume share13-1
  type protocol/client
  option transport-type tcp/client     # for TCP/IP transport
# option transport-type ib-sdp/client  # for Infiniband transport
  option remote-host 128.227.64.242    # IP address of the remote brick
# option remote-port 6996              # default server port is 6996
  option remote-subvolume share13      # name of the remote volume
end-volume
volume share14-0
  type protocol/client
  option transport-type tcp/client     # for TCP/IP transport
# option transport-type ib-sdp/client  # for Infiniband transport
  option remote-host 128.227.64.241    # IP address of the remote brick
# option remote-port 6996              # default server port is 6996
  option remote-subvolume share14      # name of the remote volume
end-volume
volume share14-1
  type protocol/client
  option transport-type tcp/client     # for TCP/IP transport
# option transport-type ib-sdp/client  # for Infiniband transport
  option remote-host 128.227.64.242    # IP address of the remote brick
# option remote-port 6996              # default server port is 6996
  option remote-subvolume share14      # name of the remote volume
end-volume
volume share15-0
  type protocol/client
  option transport-type tcp/client     # for TCP/IP transport
# option transport-type ib-sdp/client  # for Infiniband transport
  option remote-host 128.227.64.241    # IP address of the remote brick
# option remote-port 6996              # default server port is 6996
  option remote-subvolume share15      # name of the remote volume
end-volume
volume share15-1
  type protocol/client
  option transport-type tcp/client     # for TCP/IP transport
# option transport-type ib-sdp/client  # for Infiniband transport
  option remote-host 128.227.64.242    # IP address of the remote brick
# option remote-port 6996              # default server port is 6996
  option remote-subvolume share15      # name of the remote volume
end-volume

volume mirror0
  type cluster/afr
  subvolumes share0-0 share0-1
  option replicate *:2     # Do not leave space before or after "," and ":"
end-volume
volume mirror1
  type cluster/afr
  subvolumes share1-1 share1-0
  option replicate *:2     # Do not leave space before or after "," and ":"
end-volume
volume mirror2
  type cluster/afr
  subvolumes share2-0 share2-1
  option replicate *:2     # Do not leave space before or after "," and ":"
end-volume
volume mirror3
  type cluster/afr
  subvolumes share3-1 share3-0
  option replicate *:2     # Do not leave space before or after "," and ":"
end-volume
volume mirror4
  type cluster/afr
  subvolumes share4-0 share4-1
  option replicate *:2     # Do not leave space before or after "," and ":"
end-volume
volume mirror5
  type cluster/afr
  subvolumes share5-1 share5-0
  option replicate *:2     # Do not leave space before or after "," and ":"
end-volume
volume mirror6
  type cluster/afr
  subvolumes share6-0 share6-1
  option replicate *:2     # Do not leave space before or after "," and ":"
end-volume
volume mirror7
  type cluster/afr
  subvolumes share7-1 share7-0
  option replicate *:2     # Do not leave space before or after "," and ":"
end-volume
volume mirror8
  type cluster/afr
  subvolumes share8-0 share8-1
  option replicate *:2     # Do not leave space before or after "," and ":"
end-volume
volume mirror9
  type cluster/afr
  subvolumes share9-1 share9-0
  option replicate *:2     # Do not leave space before or after "," and ":"
end-volume
volume mirror10
  type cluster/afr
  subvolumes share10-0 share10-1
  option replicate *:2     # Do not leave space before or after "," and ":"
end-volume
volume mirror11
  type cluster/afr
  subvolumes share11-1 share11-0
  option replicate *:2     # Do not leave space before or after "," and ":"
end-volume
volume mirror12
  type cluster/afr
  subvolumes share12-0 share12-1
  option replicate *:2     # Do not leave space before or after "," and ":"
end-volume
volume mirror13
  type cluster/afr
  subvolumes share13-1 share13-0
  option replicate *:2     # Do not leave space before or after "," and ":"
end-volume
volume mirror14
  type cluster/afr
  subvolumes share14-0 share14-1
  option replicate *:2     # Do not leave space before or after "," and ":"
end-volume
volume mirror15
  type cluster/afr
  subvolumes share15-1 share15-0
  option replicate *:2     # Do not leave space before or after "," and ":"
end-volume

volume mirrors
  type cluster/unify
  subvolumes mirror0 mirror1 mirror2 mirror3 mirror4 mirror5 mirror6 mirror7 mirror8 mirror9 mirror10 mirror11 mirror12 mirror13 mirror14 mirror15
#  option scheduler rr
  option scheduler alu
  option alu.order disk-usage:read-usage:write-usage:open-files-usage:disk-speed-usage
  option alu.disk-usage.entry-threshold 2GB
  option alu.disk-usage.exit-threshold 60MB
  option alu.limits.min-free-disk 5GB
  option alu.stat-refresh.interval 10sec
end-volume

volume statprefetch
  type performance/stat-prefetch
  option cache-seconds 2
  subvolumes mirrors
end-volume

volume writebehind
  type performance/write-behind
  option aggregate-size 131072 # in bytes
  subvolumes statprefetch
end-volume

volume readahead
  type performance/read-ahead
  option page-size 65536 ### in bytes
  option page-count 16 ### memory cache size is page-count x page-size per file
  subvolumes writebehind
end-volume


More information about the Gluster-devel mailing list