服务器OOM报错swap分区扩容根治方案

服务器频繁出现 Out of memory(OOM)报错,本质是物理内存不足,Linux 内核触发了内存溢出保护机制。
最直接的根治方案是扩大交换分区(swap)——用磁盘空间模拟内存,给系统多一层缓冲。
本文适合零基础用户,从准备到验证全流程一五一十讲清楚。

先确认三样东西

操作前需要确认以下信息:

  • 当前 swap 状态:运行 free -h,看 Swap 那一行的 total 和 used。如果 total 为 0 或很小(比如 512M),后续就需要扩容。
  • 磁盘剩余空间:运行 df -h,找一个空间充足的挂载点(比如根目录 /),至少要有 2GB 以上。
  • 服务器 root 权限:所有命令都需要 root 或使用 sudo

一步步扩容 swap

下面演示在 Linux(CentOS / Ubuntu / Debian 通用)上通过创建 swap 文件来扩容。

第一步:创建 swap 文件

建议放在根目录,文件名为 /swapfile
以扩容 2GB 为例:

dd if=/dev/zero of=/swapfile bs=1M count=2048

参数说明:bs=1M 表示每次写入 1MB,count=2048 表示 2048 次,结果生成 2GB 文件。

第二步:设置正确权限

swap 文件必须只能被 root 读写:

chmod 600 /swapfile

第三步:格式化为 swap 格式

mkswap /swapfile

输出会显示 UUID 等信息,正常即可。

第四步:启用 swap 文件

swapon /swapfile

然后运行 free -h 检查 swap 大小是否增加了 2GB。
如果成功,继续下一步。

第五步:永久挂载

编辑 /etc/fstab 文件,在末尾添加一行:

echo '/swapfile none swap sw 0 0' >> /etc/fstab

注意:不要直接复制粘贴到现有行内,要确保是单独一行。

第六步:重启确认

重启服务器后,再次运行 free -h,确认 swap 大小仍为扩容后的值。
也可以运行 swapon --show 查看当前活跃的 swap 设备。

避坑指南(新手最容易卡住的地方)

  • swapon 失败提示“无效参数”:通常是因为 /swapfile 所在分区开启了 swapon 不支持的挂载选项,比如 discardnodiscard。重新检查 /etc/fstab 中根目录的挂载选项,简单做法是先将 /swapfile 放在一个普通 ext4 分区。
  • 权限问题:忘记执行 chmod 600 /swapfile 会导致 swapon 报错“不安全权限”。
  • 磁盘空间不足:如果磁盘已满,dd 命令会报“设备上没有空间”。建议先 df -h 确认。
  • fstab 写错导致无法启动:编辑 /etc/fstab 前最好备份一下原文件(cp /etc/fstab /etc/fstab.bak)。

怎么验证问题是否解决

除了看 swap 大小,更关键的是观察 OOM 报错是否消失。
可以模拟内存压力测试(谨慎操作):

stress --vm 1 --vm-bytes 1G --timeout 30

如果没有安装 stress,用 yum install stressapt install stress
运行后观察系统是否出现 OOM 日志,如果没有,说明 swap 有效。

另外可以查看 /var/log/messagesdmesg | tail -20 检查是否有 Out of memory 记录。

常见问题

Q:swap 文件多大合适?

通常建议物理内存的 1~2 倍。
如果内存 2GB,swap 设 2~4GB。
云服务器内存较大(≥16GB)时,swap 可以设置 4~8GB 作为应急缓冲。

Q:用 swap 分区还是 swap 文件?

swap 文件最灵活,不需要重新分区,生产环境推荐。
除非你打算做裸机调整分区。

Q:扩容后服务器性能变慢了?

swap 本质是用磁盘代替内存,速度慢很多。
如果服务器长期大量使用 swap,说明物理内存确实不够,建议升级内存。
swap 只是应急缓冲,不是根本解。

写在最后

如果你正在被服务器 OOM 报错困扰,按照本文步骤先扩容 swap,大部分情况下能立刻缓解崩溃问题。
如果后续仍然频繁触发 OOM,就需要考虑优化应用内存占用或升级物理内存了。
操作时遇到异常,优先回看避坑部分,基本能覆盖 90% 的新手踩坑点。

分享到:
上一篇
AI文案批量生成发布WordPress外贸插件
下一篇
容器资源限制防止抢占内存宕机:容器资源限制实战
1
系统公告

机房迁移升级通知

尊敬的用户: IP 段 103.23.148.x、156.224.29.x 原香港一区线路波动、攻击频繁,平台定于 7 月 5 日凌晨分批迁移至香港 GIA 机房,硬件升级 AMD 铂金机型。 迁移均在凌晨操作,最大程度降低业务影响,迁移期间服务器临时关机; 升级后配置不降低、费用不涨价,数据默认同步迁移; 迁移后 IP 全部更换,请及时修改域名解析、防火墙白名单; 建议提前备份重要数据,有问题可联系在线客服。 感谢理解与支持! 泽御云科技 2026.06.30
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意