本文主要记录在 Unraid 上通过 /boot/config/modprobe.d 持久化内核模块参数,并以限制 ZFS ARC 上限为例。可与 zfs-overview 对照。
背景说明
Unraid 根文件系统有临时性,模块参数若只写在 /etc/modprobe.d,重启可能丢失。官方推荐把持久配置放在 U 盘引导分区 的:
/boot/config/modprobe.d/
修改 ZFS ARC 上限
示例文件 /boot/config/modprobe.d/zfs.conf:
# 默认注释说明:LimeTech 默认 ARC 约为 MemTotal/8
# 按机器内存选择合适上限(字节)
# 例如约 16GiB:
options zfs zfs_arc_max=17179869184
按需取消注释或改数值。改完后需重启或按发行版要求重新加载模块后再生效(生产环境优先安排重启窗口)。
验证
cat /sys/module/zfs/parameters/zfs_arc_max
# 或观察 ARC 相关统计(工具因环境而异)
确认数值与配置一致,并观察业务与缓存命中是否可接受。
注意事项
- ARC 过小会伤读性能,过大可能挤占虚拟机/Docker 内存。
- 与
/lib/modprobe.d中同名文件时,用户配置覆盖关系见man modprobe.d。 - 主机名已脱敏;参数请按本机内存计算。