LinuxカーネルとZFSはメモリをキャッチします(2x arc_max)。

LinuxカーネルとZFSはメモリをキャッチします(2x arc_max)。

まず、私のカーネルがあまりにも多くのメモリを使用しているようです。

$ 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

私は12GiBのメモリを使用するようにzfsを設定しましたが、それより少し使用しているようです。これにより 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のメモリを失いました。私はこれらの問題(私のCPUとカーネルのメモリスペースを最大化するzfs)が関係していると確信しているので、これを質問として投稿しました。

私はUbuntu 20.04 LTS(Linux 5.4.0-65-generic、zfs-0.8.3-1ubuntu12.7)を使用しています。

問題は実行後しばらく消えますecho 3 > /proc/sys/vm/drop_cachesが、修正するのは難しいです。

どうなりますか?ヒントをどこで入手するのかわかりません。

関連情報