服务器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 不支持的挂载选项,比如 discard 或 nodiscard。重新检查 /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 stress 或 apt install stress。
运行后观察系统是否出现 OOM 日志,如果没有,说明 swap 有效。

另外可以查看 /var/log/messages 或 dmesg | 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
系统公告

泽御云中秋国庆双节活动上线:新购8折,拼团3.99元起

尊敬的用户:
泽御云“月满中秋·礼贺国庆”双节活动现已开启,活动时间为2026年9月23日至10月10日。 活动期间可享以下福利:
1. 常规云服务器新购使用优惠码“泽御中秋国庆同乐”,符合条件的订单享8折优惠。
2. 香港精品云服务器5人拼团低至3.99元,部分4核4G套餐3人拼团年付388元,续费同价。
3. 新用户购买年付云服务器,符合活动规则可赠送2个月使用时长。
4. 老用户续费季度赠15天,续费年度赠2个月;活动期间升级配置免收配置迁移手续费。
5. 推荐好友成功下单,符合条件的推荐人可获赠7天服务器使用时长。
6. 活动期间享宕机补偿标准翻倍、简单网站迁移协助及技术工单优先处理权益。
温馨提示:优惠码不适用于拼团套餐、活动轻量产品、年付订单及续费订单;拼团套餐为独立特价活动,不与赠时类福利叠加。赠送时长不可折现、退款或跨账户转移,具体规则以活动页面说明为准。
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意