首先,我的内核似乎使用了太多的内存
$ 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
,但这很难解决。
这是怎么回事?我不知道还能在哪里寻找提示。