Re: GlusterFS 9.5 fuse mount excessive memory usage

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

 



Can you generate a statedump before and after the tar ?
For statedump generation , you can follow https://github.com/gluster/glusterfs/issues/1440#issuecomment-674051243 .

Best Regards,
Strahil Nikolov


В събота, 5 февруари 2022 г., 07:54:22 Гринуич+2, Zakhar Kirpichenko <zakhar@xxxxxxxxx> написа:


Hi!

I opened a Github issue https://github.com/gluster/glusterfs/issues/3206 but not sure how much attention they get there, so re-posting here just in case someone has any ideas.

Description of problem:

GlusterFS 9.5, 3-node cluster (2 bricks + arbiter), an attempt to tar the whole filesystem (35-40 GB, 1.6 million files) on a client succeeds but causes the glusterfs fuse mount process to consume 0.5+ GB of RAM. The usage never goes down after tar exits.

The exact command to reproduce the issue:

/usr/bin/tar --use-compress-program="/bin/pigz" -cf /path/to/archive.tar.gz --warning=no-file-changed /glusterfsmount

The output of the gluster volume info command:

Volume Name: gvol1
Type: Replicate
Volume ID: 0292ac43-89bd-45a4-b91d-799b49613e60
Status: Started
Snapshot Count: 0
Number of Bricks: 1 x (2 + 1) = 3
Transport-type: tcp
Bricks:
Brick1: 192.168.0.31:/gluster/brick1/gvol1
Brick2: 192.168.0.32:/gluster/brick1/gvol1
Brick3: 192.168.0.5:/gluster/brick1/gvol1 (arbiter)
Options Reconfigured:
performance.open-behind: off
cluster.readdir-optimize: off
cluster.consistent-metadata: on
features.cache-invalidation: on
diagnostics.count-fop-hits: on
diagnostics.latency-measurement: on
storage.fips-mode-rchecksum: on
performance.cache-size: 256MB
client.event-threads: 8
server.event-threads: 4
storage.reserve: 1
performance.cache-invalidation: on
cluster.lookup-optimize: on
transport.address-family: inet
nfs.disable: on
performance.client-io-threads: on
features.cache-invalidation-timeout: 600
performance.md-cache-timeout: 600
network.inode-lru-limit: 50000
cluster.shd-max-threads: 4
cluster.self-heal-window-size: 8
performance.enable-least-priority: off
performance.cache-max-file-size: 2MB

The output of the gluster volume status command:

Status of volume: gvol1
Gluster process                             TCP Port  RDMA Port  Online  Pid
------------------------------------------------------------------------------
Brick 192.168.0.31:/gluster/brick1/gvol1    49152     0          Y       1767
Brick 192.168.0.32:/gluster/brick1/gvol1    49152     0          Y       1696
Brick 192.168.0.5:/gluster/brick1/gvol1     49152     0          Y       1318
Self-heal Daemon on localhost               N/A       N/A        Y       1329
Self-heal Daemon on 192.168.0.31            N/A       N/A        Y       1778
Self-heal Daemon on 192.168.0.32            N/A       N/A        Y       1707

Task Status of Volume gvol1
------------------------------------------------------------------------------
There are no active volume tasks

The output of the gluster volume heal command:

Brick 192.168.0.31:/gluster/brick1/gvol1
Status: Connected
Number of entries: 0

Brick 192.168.0.32:/gluster/brick1/gvol1
Status: Connected
Number of entries: 0

Brick 192.168.0.5:/gluster/brick1/gvol1
Status: Connected
Number of entries: 0

The operating system / glusterfs version:

CentOS Linux release 7.9.2009 (Core), fully up to date
glusterfs 9.5
kernel 3.10.0-1160.53.1.el7.x86_64

The logs are basically empty since the last mount except for the mount-related messages.

Additional info: a statedump from the client is attached to the Github issue, https://github.com/gluster/glusterfs/files/8004792/glusterdump.18906.dump.1643991007.gz, in case someone wants to have a look.

There was also an issue with other clients, running PHP applications with lots of small files, where glusterfs fuse mount process would very quickly balloon to ~2 GB over the course of 24 hours and its performance would slow to a crawl. This happened very consistently with glusterfs 8.x and 9.5, I managed to resolve it at least partially with disabling performance.open-behind: the memory usage either remains consistent or increases at a much slower rate, which is acceptable for this use case.

Now the issue remains on this single client, which doesn't do much other than reading and archiving all files from the gluster volume once per day. The glusterfs fuse mount process balloons to 0.5+ GB during the first tar run and remains more or less consistent afterwards, including subsequent tar runs.

I would very much appreciate any advice or suggestions.

Best regards,
Zakhar
________



Community Meeting Calendar:

Schedule -
Every 2nd and 4th Tuesday at 14:30 IST / 09:00 UTC
Bridge: https://meet.google.com/cpu-eiue-hvk
Gluster-users mailing list
Gluster-users@xxxxxxxxxxx
https://lists.gluster.org/mailman/listinfo/gluster-users
________



Community Meeting Calendar:

Schedule -
Every 2nd and 4th Tuesday at 14:30 IST / 09:00 UTC
Bridge: https://meet.google.com/cpu-eiue-hvk
Gluster-users mailing list
Gluster-users@xxxxxxxxxxx
https://lists.gluster.org/mailman/listinfo/gluster-users

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

  Powered by Linux