[Gluster-users] [Gluster-devel] GlusterFS FUSE client leaks summary — part I

Oleksandr Natalenko oleksandr at natalenko.name
Mon Feb 1 08:09:10 UTC 2016


Wait. It seems to be my bad.

Before unmounting I do drop_caches (2), and glusterfs process CPU usage 
goes to 100% for a while. I haven't waited for it to drop to 0%, and 
instead perform unmount. It seems glusterfs is purging inodes and that's 
why it uses 100% of CPU. I've re-tested it, waiting for CPU usage to 
become normal, and got no leaks.

Will verify this once again and report more.

BTW, if that works, how could I limit inode cache for FUSE client? I do 
not want it to go beyond 1G, for example, even if I have 48G of RAM on 
my server.

01.02.2016 09:54, Soumya Koduri написав:
> On 01/31/2016 03:05 PM, Oleksandr Natalenko wrote:
>> Unfortunately, this patch doesn't help.
>> 
>> RAM usage on "find" finish is ~9G.
>> 
>> Here is statedump before drop_caches: https://gist.github.com/
>> fc1647de0982ab447e20
> 
> [mount/fuse.fuse - usage-type gf_common_mt_inode_ctx memusage]
> size=706766688
> num_allocs=2454051
> 
>> 
>> And after drop_caches: https://gist.github.com/5eab63bc13f78787ed19
> 
> [mount/fuse.fuse - usage-type gf_common_mt_inode_ctx memusage]
> size=550996416
> num_allocs=1913182
> 
> There isn't much significant drop in inode contexts. One of the
> reasons could be because of dentrys holding a refcount on the inodes
> which shall result in inodes not getting purged even after
> fuse_forget.
> 
> 
> pool-name=fuse:dentry_t
> hot-count=32761
> 
> if  '32761' is the current active dentry count, it still doesn't seem
> to match up to inode count.
> 
> Thanks,
> Soumya
>> 
>> And here is Valgrind output: 
>> https://gist.github.com/2490aeac448320d98596
>> 
>> On субота, 30 січня 2016 р. 22:56:37 EET Xavier Hernandez wrote:
>>> There's another inode leak caused by an incorrect counting of
>>> lookups on directory reads.
>>> 
>>> Here's a patch that solves the problem for
>>> 3.7:
>>> 
>>> http://review.gluster.org/13324
>>> 
>>> Hopefully with this patch the
>>> memory leaks should disapear.
>>> 
>>> Xavi
>>> 
>>> On 29.01.2016 19:09, Oleksandr
>>> 
>>> Natalenko wrote:
>>>> Here is intermediate summary of current memory
>>> 
>>> leaks in FUSE client
>>> 
>>>> investigation.
>>>> 
>>>> I use GlusterFS v3.7.6
>>> 
>>> release with the following patches:
>>>> ===
>>> 
>>>> Kaleb S KEITHLEY (1):
>>> fuse: use-after-free fix in fuse-bridge, revisited
>>> 
>>>> Pranith Kumar K
>>> 
>>> (1):
>>>> mount/fuse: Fix use-after-free crash
>>> 
>>>> Soumya Koduri (3):
>>> gfapi: Fix inode nlookup counts
>>> 
>>>> inode: Retire the inodes from the lru
>>> 
>>> list in inode_table_destroy
>>> 
>>>> upcall: free the xdr* allocations
>>>> ===
>>>> 
>>>> 
>>>> With those patches we got API leaks fixed (I hope, brief tests show
>>> 
>>> that) and
>>> 
>>>> got rid of "kernel notifier loop terminated" message.
>>> 
>>> Nevertheless, FUSE
>>> 
>>>> client still leaks.
>>>> 
>>>> I have several test
>>> 
>>> volumes with several million of small files (100K…2M in
>>> 
>>>> average). I
>>> 
>>> do 2 types of FUSE client testing:
>>>> 1) find /mnt/volume -type d
>>>> 2)
>>> 
>>> rsync -av -H /mnt/source_volume/* /mnt/target_volume/
>>> 
>>>> And most
>>> 
>>> up-to-date results are shown below:
>>>> === find /mnt/volume -type d
>>> 
>>> ===
>>> 
>>>> Memory consumption: ~4G
>>> 
>>>> Statedump:
>>> https://gist.github.com/10cde83c63f1b4f1dd7a
>>> 
>>>> Valgrind:
>>> https://gist.github.com/097afb01ebb2c5e9e78d
>>> 
>>>> I guess,
>>> 
>>> fuse-bridge/fuse-resolve. related.
>>> 
>>>> === rsync -av -H
>>> 
>>> /mnt/source_volume/* /mnt/target_volume/ ===
>>> 
>>>> Memory consumption:
>>> ~3.3...4G
>>> 
>>>> Statedump (target volume):
>>> https://gist.github.com/31e43110eaa4da663435
>>> 
>>>> Valgrind (target volume):
>>> https://gist.github.com/f8e0151a6878cacc9b1a
>>> 
>>>> I guess,
>>> 
>>> DHT-related.
>>> 
>>>> Give me more patches to test :).
>>> 
>>> _______________________________________________
>>> 
>>>> Gluster-devel mailing
>>> 
>>> list
>>> 
>>>> Gluster-devel at gluster.org
>>> 
>>> http://www.gluster.org/mailman/listinfo/gluster-devel
>> 
>> 
>> _______________________________________________
>> Gluster-devel mailing list
>> Gluster-devel at gluster.org
>> http://www.gluster.org/mailman/listinfo/gluster-devel
>> 


More information about the Gluster-users mailing list