Linux 内核与 ZFS 吃掉我的内存(arc_max 的 2 倍)

Linux 内核与 ZFS 吃掉我的内存(arc_max 的 2 倍)

首先,我的内核似乎使用了太多的内存

$ grep Slab /proc/meminfo
Slab:           21794184 kB

所有 /proc/meminfo/proc/slabinfo

$ free -h
              total        used        free      shared  buff/cache   available
Mem:           31Gi        22Gi       3.6Gi       3.0Mi       5.1Gi       8.2Gi
Swap:         8.0Gi        12Mi       8.0Gi

我将 zfs 配置为使用 12GiB 内存,但似乎使用的内存比这多一点,导致 arc_prune kthreads永久最大化所有核心尽管 zfs_arc_max 自启动以来没有改变。如果相关的话,我在 raidz 中有 4x 8TB 驱动器。从arc_summary.py

ARC Size:                               103.98% 12.48   GiB
        Target Size: (Adaptive)         100.00% 12.00   GiB
        Min Size (Hard Limit):          8.14%   999.96  MiB
        Max Size (High Water):          12:1    12.00   GiB

查看更多 ...

这仍然导致内核莫名其妙地丢失了大约 9GiB 的内存。我非常确定这些问题(zfs 最大化我的 cpu 和内核占用内存)是相关的,这就是为什么我将其作为一个问题发布。

我使用的是 ubuntu 20.04 LTS (linux 5.4.0-65-generic, zfs-0.8.3-1ubuntu12.7)

运行后问题会消失一段时间echo 3 > /proc/sys/vm/drop_caches,但这很难解决。

这是怎么回事?我不知道还能在哪里寻找提示。

相关内容