簡介:
由於使用的是淘汰工作站,都不算什么服務器,所以使用了ZFS的軟raid方案來保證數據安全。
但是ZFS太先進了,而且當年是為sun的工作站設計的,所以它使用了大量的內存來做數據緩存。
我這小雞可承受不住這個內存消耗,直接要消耗大約50%的物理內存。
我們要根據自己的實際情況,來對ARC緩存進行限制。
一:zfs arc緩存介紹
算了吧,搜了幾個介紹,都是又臭又長的理論文章。
我簡單說一下吧,硬件raid卡會有緩存,還有電池,保證raid的數據穩定。
zfs的raid,就像軟raid,通過計算機的計算來實現raid,但是緩存從哪里來?內存啊,速度比硬盤快的多,而sun的 Solaris,以前就是怪物一樣的超級大內存,所以ZFS在設計的時候,就很耗內存,移植到linux之后還帶着這樣的基因,占用50%的物理內存做zfs緩存。
二:檢查內存占用
反正我的16G內存老雞,就占了一半多一點,系統還得占點。
cockpit,pve,這兩個的管理頁面都能看到。
三:設置arc最大內存
這就是ZFS允許減小允許使用ARC大小的最大大小的原因。此設置在/etc/modprobe.d/zfs.conf
文件中完成。
例如,如果您希望ARC永遠不要超過32 GB,請添加以下行:
options zfs zfs_arc_max=34359738368
我設置為1G
options zfs zfs_arc_max=1073741824
簡單設置命令為:
echo“options zfs zfs_arc_max = 1073741824”>> /etc/modprobe.d/zfs.conf
根據你的物理內存,自己計算吧,1G:1*1024*1024*1024*1024
如果根文件系統也使用了ZFS,你必須在每次修改該參數后更新initramfs,如下:
update-initramfs –u
四:測試效果
反正我的是從8G多變成1G多了。
你就自己看cockpit或PVE的管理界面吧。