TrueNAS小内存必须的一个配置(限制ARC大小)

转自:TrueNAS小内存必须的一个配置(限制ARC大小)

绪论

你是否想体验TrueNAS那酷炫的UI,那方便的管理,原生地使用比起传统RAID有更多优势的ZFS文件系统呢?
或许你想,但是你手头的NAS可能是几年前的蜗牛星际,或是很老的电脑,只有4G乃至更低的内存,然而网上铺天盖地的教程告诉你TrueNAS是一个十分吃内存的系统
就算你强制装上去了,你会发现你连续写入大量数据的时候内存爆炸,直接给你卡死了(我使用SMB协议的时候遇到了这个问题,要是你直接在终端操作的话貌似没有这个问题),从而心生退意

原理解析

ZFS会使用缓存来提升性能以及安全性,它的缓存结构大致如下:

User<--R/W-->ARC (Memory)<--R/W-->L2ARC (SSD)<--R/W-->Pool (HDD/SSD)

由此可见,内存被它用作一级缓存,在我们进行大量的写入操作时会迅速占用内存空间,在小内存的情况下很容易“炸内存”,使得系统不能缓过来从而卡死,SSH都连不上

解决办法

由上述可知,我们只要限制一下ARC所占空间就可以解决这个问题
首先登入Web界面,在“系统设置>高级”中找到“Init/Shutdown Scripts”,添加一条命令:

 echo 1073741824 >> /sys/module/zfs/parameters/zfs_arc_max

其中的数字换成你自己想要限制到的内存大小,单位是字节,我这里设置的是1G(宿主机内存大小4G),目前没有遇到问题
然后选择在初始化后期执行,保存重启即可

你可能感兴趣的:(TrueNAS小内存必须的一个配置(限制ARC大小))