1GB 内存小鸡跑 3x-ui:加 swap 与调 swappiness 防面板 OOM 的实测

举报
yd_277098636 发表于 2026/10/31 08:26:10 2026/10/31
【摘要】 现象:可用内存不到 1GB,面板随时可能被 OOM一台 1 核 1GB 内存的云服务器,系统装完后实际可用内存只有约 909MB。上面跑 3x-ui 面板加 xray 核心、nginx 之后,空闲内存所剩无几;一旦某个进程内存 spike,内核 OOM killer 就可能直接杀掉面板或核心,表现为面板打不开、节点断连,而日志里未必有明确报错。 做法一:加 1GB swapfile,并写进...

现象:可用内存不到 1GB,面板随时可能被 OOM

一台 1 核 1GB 内存的云服务器,系统装完后实际可用内存只有约 909MB。上面跑 3x-ui 面板加 xray 核心、nginx 之后,空闲内存所剩无几;一旦某个进程内存 spike,内核 OOM killer 就可能直接杀掉面板或核心,表现为面板打不开、节点断连,而日志里未必有明确报错。

做法一:加 1GB swapfile,并写进 fstab 持久化

fallocate -l 1G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
echo ‘/swapfile none swap sw 0 0’ >> /etc/fstab
swapfile 而不是 swap 分区,是因为云盘实例事后加分区要动磁盘布局,文件方式随时可加、可删;600 权限是避免 swap 内容被普通用户读取。

做法二:swappiness 设为 10,而不是默认 60

sysctl -w vm.swappiness=10
echo ‘vm.swappiness=10’ >> /etc/sysctl.conf
swappiness=10 的含义是:内存紧张时才动用 swap,平时尽量留在物理内存。设 60 会让内核过早把面板进程页换出,面板响应变慢;设 0 则在内存耗尽前几乎不用 swap,失去兜底意义。10 是小内存面板机的折中值。

效果与边界

  • 加 swap 后,内存 spike 时进程先被换出而不是被杀,面板存活率明显提高;代价是换页期间响应变慢,这是兜底不是扩容。
  • swap 不能替代内存:如果常驻占用本身就超过物理内存,机器会长期处于换页状态,正确做法是升级配置或拆分服务,而不是把 swap 加到 4GB 自欺欺人。
  • 验证方法:free -h 看 Swap 行是否为 1.0G,swapon --show 确认已启用,重启后复查 fstab 是否生效——只看当次 swapon 成功不算持久化。

一句话总结

小内存机跑面板,swap 是防 OOM 的保险丝,不是性能方案:1GB swap + swappiness=10 + fstab 持久化,三处缺一不可。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。