1GB 内存小鸡跑 3x-ui:加 swap 与调 swappiness 防面板 OOM 的实测
【摘要】 现象:可用内存不到 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)