PVE解决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的管理界面吧。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了