zfs 的 arc 跟 page cache 一樣, default 是沒有設定上限的

$ cat /sys/module/zfs/parameters/zfs_arc_max
0

雖然這樣能最大的發揮 zfs 的效能, 但會增加應用 allocate memory 時的 latency, 對於桌面環境來說會降低使用者體驗. 要將大小限制在 4G, 可增加設定檔如下

# /etc/modprobe.d/zfs.conf
options zfs zfs_arc_max=4294967296

如果 rootfs 是建立在 zfs 之上, 那必須在 initramfs load kernel module 時就將參數設上, 因此必須要更新 initramfs. 在 debian 中可執行

$ sudo update-initramfs -u
update-initramfs: Generating /boot/initrd.img-3.16.0-4-amd64

確認 etc/modprobe.d/zfs.conf 相關內容有進到 initramfs 中

$ $ sudo lsinitramfs /boot/initrd.img-3.16.0-4-amd64  | grep zfs
boot/zfs
boot/zfs/zpool.cache
sbin/mount.zfs
sbin/zfs
etc/default/zfs
etc/zfs
etc/zfs/zpool.cache
etc/zfs/common.init
etc/zfs/zed.d
etc/zfs/zed.d/data-email.sh
etc/zfs/zed.d/scrub.finish-email.sh
etc/zfs/zed.d/all-syslog.sh
etc/zfs/zed.d/io-email.sh
etc/zfs/zed.d/checksum-spare.sh
etc/zfs/zed.d/resilver.finish-email.sh
etc/zfs/zed.d/zed.rc
etc/zfs/zed.d/io-spare.sh
etc/zfs/zed.d/checksum-email.sh
etc/modprobe.d/zfs.conf
scripts/zfs
lib/libzfs_core.so.1
lib/modules/3.16.0-4-amd64/updates/dkms/zfs.ko
lib/libzfs.so.2

重啟後再確認下即可.