PVE Proxmox Virtual Environment 學習筆記(三)解決ZFS內存高占用ARC


簡介:

由於使用的是淘汰工作站,都不算什么服務器,所以使用了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的管理界面吧。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM