ZFS 背后的团队认为空闲和未使用的内存都是浪费的内存。因此,他们设计了 ZFS 来非常积极地缓存数据。 ZFS 尝试在内存 (RAM) 中缓存尽可能多的数据,以提供对文件系统的更快访问。

不幸的是,内存(RAM)非常昂贵。因此,ZFS 还允许您使用快速 SSD 来缓存数据。在内存上缓存数据称为一级缓存或 L1 缓存,在 SSD 上缓存数据称为二级缓存或 L2 缓存。

在 Linux 上,ZFS 默认使用 50% 的已安装内存用于 ARC 缓存。因此,如果您的计算机上安装了 8 GB 内存,ZFS 最多将使用 4 GB 内存进行 ARC 缓存。

如果需要,您可以增加或减少 ZFS 可用于 ARC 缓存的最大内存量。要设置 ZFS 可用于 ARC 缓存的最大内存量,可以使用 zfs_arc_max 内核参数。

所以在某些情况下就需要给 ARC 做一些限制了.

按照外面的说法 建议 给 1T硬盘 分配1G内存.

通过arc_summary命令可以找到很多ARC缓存的使用信息,如下:

aarc_summary -s arc

要为 ZFS ARC 缓存设置自定义最大内存限制,请在 /etc/modprobe.d/ 目录中创建一个新文件 zfs.conf,如下所示:

nano /etc/modprobe.d/zfs.conf

我这里给他限制 4G

options zfs zfs_arc_max=4294967296

使用以下命令更新当前内核的 initramfs 映像:

update-initramfs -u

最后 重启生效.