[Bugs] [Bug 1623107] FUSE client's memory leak

bugzilla at redhat.com bugzilla at redhat.com
Tue Jan 1 18:52:17 UTC 2019


https://bugzilla.redhat.com/show_bug.cgi?id=1623107



--- Comment #33 from Znamensky Pavel <kompastver at gmail.com> ---
(In reply to Nithya Balachandran from comment #31)
> Then it is likely to be because the fuse client does not invalidate inodes.
> Does your workload access a lot of files? The earlier statedump showed
> around 3 million inodes in memory. 
>
>...
>
> https://review.gluster.org/#/c/glusterfs/+/19778/ has a fix to invalidate
> inodes but is not targeted for release 5 as yet.


Nithya, you're right!
I built glusterfs from the current master
(https://github.com/gluster/glusterfs/tree/d9a8ccd354df6db94477bf9ecb09735194523665)
with the new invalidate inodes mechanism that you mentioned before, and RSS
memory consumption indeed became much lower.
And as you supposed our apps quite often access a lot of files.
Here are two tests with clients on v6dev and v4.1 (the server is still on v4.1
and read-ahead=on)

The first test with default --lru-limit=0 (just did `find /in/big/dir -type
f`):

v4.1 - ~3GB RSS:
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root       633  6.6 18.5 3570216 3056136 ?     Ssl  19:44   6:25
/usr/sbin/glusterfs --read-only --process-name fuse --volfile-server=srv
--volfile-id=/st1 /mnt/st1

v6dev - ~1.5GB RSS:
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root     10851 16.5  9.2 2071036 1526456 ?     Ssl  19:45  15:50
/usr/sbin/glusterfs --read-only --process-name fuse --volfile-server=srv
--volfile-id=/st1 /mnt/st1

It looks good. Let's do the next test.
The second test with --lru-limit=10_000 for v6dev:

v4.1 - ~3GB RSS:
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root      3589  4.7 18.6 3570216 3060364 ?     Ssl  13:11  18:40
/usr/sbin/glusterfs --process-name fuse --volfile-server=srv --volfile-id=/st1
/mnt/st1

v6dev - ~170MB RSS:
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root     24152 14.2  1.0 758768 173704 ?       Ssl  13:58  49:06
/usr/sbin/glusterfs --lru-limit=10000 --process-name fuse --volfile-server=srv
--volfile-id=/st1 /mnt/st1

170MB vs. 3GB!
It's incredible!
Unfortunately, the new version has a drawback - CPU time increased 2.5x times.
At the moment it doesn't matter for us.
Anyway, I'm sure this change solves our problem. And of course, we're looking
forward to a stable version with it.
Thank you a lot!

-- 
You are receiving this mail because:
You are on the CC list for the bug.


More information about the Bugs mailing list