Cache filling up causing drastic performance degradation on Linux 6.10.3 (User)

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

 



If I read from my Steam Library (this has about 430GiB of data), stored on an
ext4 formatted NVMe drive like this:

find /mnt/SteamLibrary/steamapps/common -type f -exec cat {} + -type f | pv >
/dev/null

I see that it initially starts reading at 800MiB/s (6.4 Gbps) then, once my
cache fills up (as shown by buff/cache in free), the read speed drops to as low
as 6MiB/s (48 Mbps) but periodically returns to 800MiB/s as the cache gets
freed.

When the cache fills, other tasks are also affected (e.g video playback
stutters or stops). I also see high CPU usage from kswapd0 and btrfs-cleaner
(which is strange because, again, it's an ext4 filesystem that I'm reading
from) using top.

Running echo 1 > /proc/sys/vm/drop_caches immediately improves performance.

But, instead, if a run the same read command in a Memory cgroup with memory.max
set to 500M, I get a solid 800MiB/s read speed without filling up the cache or
affecting other tasks.

TL;DR simply reading files seems to be enough to cause major system-wide
performance degradation. This also applies when updating games on Steam or
moving them between Library locations.

Anyone know if this is a bug or regression in Linux 6.10? Or whether there are
any tunables or Sysctls that could improve performance without manually running
things in CGroups?

This happens on a AMD 7950X3D with 96GB of ram.

I describe the same thing on my post at:
https://www.reddit.com/r/linuxquestions/comments/1emetro/cache_filling_up_causing_drastic_performance/

It also seems that someone else has experienced something similar here:
https://www.reddit.com/r/linuxquestions/comments/1e83ltj/610_disk_caching_vs_memory_exhaustion_issues/

--
Abhinav Praveen




[Index of Archives]     [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