[Gluster-devel] Excessive memory usage with 1.3.12

Lukas Hejtmanek xhejtman at ics.muni.cz
Fri Nov 7 22:01:37 UTC 2008


On Sat, Nov 08, 2008 at 01:01:08AM +0530, Krishna Srinivas wrote:
> Are you sure that its a leak of io-cache? did you try by removing the
> translator and not observe the leak?

yes, omitting io-cache from configuration works OK, no leaks.

> What made you conclude that cache-size option was being ignored? It
> could be a memory leak by io-cache at some other place too.

I probed maps of glusterfs when leaks occur, bonnie++ created 8 files each
having 1GB size. maps shown that four of them were mmaped. So I guess it tries
to cache as much as possible on x86_64.

> I tried to make io-cache memleak, but its not happening, what
> operations do you guys do to see the leak? can you see if some simple
> test case makes it leak? (so that it will be easy for me to reproduce
> the bug here and fix it)

I can provide either core of leaked process or steps how to reproduce.

I have 3 servers. Config one of them is attached, configs are symmetrical.

I use bonnie++ benchmark to test the file system:
bonnie++ -d /mnt/gluster -u 0:0

the first run of bonnie is usually ok. the second fails on memleaks. It's
important to use 64bit system.

-- 
Lukáš Hejtmánek
-------------- next part --------------
volume storage_1
	type storage/posix
	option directory /mnt/data/gluster-a	 # 200G
end-volume

volume plock1
	type features/posix-locks
	option mandatory on
	subvolumes storage_1
end-volume	

###################

volume wb1
	type performance/write-behind
	subvolumes plock1
end-volume

volume ra1
	type performance/read-ahead
	subvolumes wb1
end-volume

volume brick1
	type performance/io-threads
	subvolumes ra1
	option thread-count 2
end-volume

#################

# export pro dalsi servery
volume skirit58
	type protocol/server
	option transport-type tcp/socket
	subvolumes brick1  
	option auth.addr.brick1.allow 147.251.11.*
end-volume

###################################################
# Client mount part of configurations
###################################################

volume skirit60-brick1
	type protocol/client
	option transport-type tcp/socket
        option remote-host skirit60.ics.muni.cz
        option remote-subvolume brick1  
end-volume

volume skirit60-ns
	type protocol/client
	option transport-type tcp/socket
        option remote-host skirit60.ics.muni.cz
        option remote-subvolume ns
end-volume

volume skirit59-brick1
	type protocol/client
	option transport-type tcp/socket
        option remote-host skirit59.ics.muni.cz
        option remote-subvolume brick1
end-volume

volume unify
	type cluster/unify
	subvolumes brick1 skirit60-brick1 skirit59-brick1
        option scheduler nufa
        option nufa.local-volume-name brick1
        option nufa.limits.min-free-disk 5%
	option namespace skirit60-ns
end-volume

volume wb
	type performance/write-behind
	subvolumes unify
end-volume

volume ra
	type performance/read-ahead
	subvolumes wb
end-volume

volume ioc
	type performance/io-cache
	option cache-size 64MB
	option page-size 1MB
	option force-revalidate-timeout 2
	subvolumes ra
end-volume	



More information about the Gluster-devel mailing list