本文主要记录在 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
  • 主机名已脱敏;参数请按本机内存计算。