轉(zhuǎn)自:TrueNAS小內(nèi)存必須的一個(gè)配置(限制ARC大小)
緒論
你是否想體驗(yàn)TrueNAS那酷炫的UI,那方便的管理,原生地使用比起傳統(tǒng)RAID有更多優(yōu)勢(shì)的ZFS文件系統(tǒng)呢?
或許你想,但是你手頭的NAS可能是幾年前的蝸牛星際,或是很老的電腦,只有4G乃至更低的內(nèi)存,然而網(wǎng)上鋪天蓋地的教程告訴你TrueNAS是一個(gè)十分吃內(nèi)存的系統(tǒng)
就算你強(qiáng)制裝上去了,你會(huì)發(fā)現(xiàn)你連續(xù)寫入大量數(shù)據(jù)的時(shí)候內(nèi)存爆炸,直接給你卡死了(我使用SMB協(xié)議的時(shí)候遇到了這個(gè)問題,要是你直接在終端操作的話貌似沒有這個(gè)問題),從而心生退意
原理解析
ZFS會(huì)使用緩存來提升性能以及安全性,它的緩存結(jié)構(gòu)大致如下:
User<--R/W-->ARC (Memory)<--R/W-->L2ARC (SSD)<--R/W-->Pool (HDD/SSD)
由此可見,內(nèi)存被它用作一級(jí)緩存,在我們進(jìn)行大量的寫入操作時(shí)會(huì)迅速占用內(nèi)存空間,在小內(nèi)存的情況下很容易“炸內(nèi)存”,使得系統(tǒng)不能緩過來從而卡死,SSH都連不上
解決辦法
由上述可知,我們只要限制一下ARC所占空間就可以解決這個(gè)問題
首先登入Web界面,在“系統(tǒng)設(shè)置>高級(jí)”中找到“Init/Shutdown Scripts”,添加一條命令:
echo 1073741824 >> /sys/module/zfs/parameters/zfs_arc_max
其中的數(shù)字換成你自己想要限制到的內(nèi)存大小,單位是字節(jié),我這里設(shè)置的是1G(宿主機(jī)內(nèi)存大小4G),目前沒有遇到問題
然后選擇在初始化后期執(zhí)行,保存重啟即可