一:zfs arc缓存介绍
zfs的raid,就像软raid,通过计算机的计算来实现raid,但是缓存从哪里来?内存啊,速度比硬盘快的多,而sun的 Solaris,以前就是怪物一样的超级大内存,所以ZFS在设计的时候,就很耗内存,移植到linux之后还带着这样的基因,占用50%的物理内存做zfs缓存。
二:检查内存占用
我的32G内存,就占了一半多一点,系统还得占点。
arcstat,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
四:测试效果
内存占用从16G多变成1G多了。
你就自己看arcstat或PVE的管理界面吧。