服务器swap分区扩容缓解OOM

什么情况下需要给服务器扩容Swap?

当系统物理内存(RAM)不足时,Linux内核会触发OOM killer(Out-Of-Memory Killer),随机杀掉进程来释放内存。
这种情况在运行数据库、Java应用或高并发网站时尤其常见。Swap(交换分区或交换文件) 就是硬盘上的一块空间,被当作“虚拟内存”使用。
扩容Swap能让系统在内存吃紧时把不活跃的数据挪到硬盘,降低OOM发生的概率。

操作前先确认这几件事

  1. 检查当前Swap大小
   free -h
   swapon --show

如果Swap显示为0或者远小于内存(推荐Swap至少等于内存的50%到100%),就需要扩容。

  1. 确认磁盘空闲空间
   df -h

找一个剩余空间较大的分区(比如 //home),我们将在这个分区下创建Swap文件。

  1. 备份重要数据:虽然创建Swap文件风险很低,但建议提前备份 /etc/fstab 文件:
   cp /etc/fstab /etc/fstab.bak

扩容Swap的完整步骤(文件方式)

以下操作在CentOS 7/8、Ubuntu 20.04+/Debian 11上均测试通过。

第一步:创建指定大小的Swap文件

例如要增加4GB Swap,执行:

dd if=/dev/zero of=/swapfile bs=1M count=4096
  • if=/dev/zero 表示从空设备读取。
  • of=/swapfile 表示目标文件路径(可以换成其他位置,如 /data/swapfile)。
  • bs=1M count=4096 表示总大小4GB(4096个1MB块)。

第二步:设置文件权限

Swap文件必须只有root可读写,否则系统会拒绝使用:

chmod 600 /swapfile

第三步:将文件格式化为交换空间

mkswap /swapfile

第四步:激活Swap文件

swapon /swapfile

此时用 free -hswapon --show 应该能看到新的Swap大小。

第五步:永久启用(开机自动挂载)

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

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

注意:如果Swap文件路径不是 /swapfile,请替换为实际路径。

必须注意的几个坑

  • 不要使用Btrfs、ZFS、NFS等文件系统:这些文件系统对Swap支持不好,建议使用ext4或xfs。可以用 df -T /swapfile 查看所在分区文件系统类型。
  • Swap文件不能放在LVM条带化卷或RAID0上:否则可能造成性能问题。普通单盘或RAID1都可以。
  • Swap大小不宜过大:一般建议不超过物理内存的2倍,过大的Swap反而会让系统频繁换页,拖慢响应。
  • 如果系统内存严重不足,直接调 vm.swappiness
  sysctl vm.swappiness=10
  echo 'vm.swappiness=10' >> /etc/sysctl.conf

值越小越不倾向使用Swap(默认60),但对于OOM发起的场景,调低反而能减少Swap占用。

验证扩容是否生效

  1. 查看当前Swap总量和使用量:
   free -h
  1. 检查所有已激活的Swap源:
   swapon --show
  1. 模拟内存压力(谨慎使用,仅用于测试):
   stress --vm 2 --vm-bytes 2G --timeout 30s

观察 free -h 中Swap使用量的变化,并注意没有进程被OOM杀掉。

高频问题解答

Q:扩容Swap后系统变卡了怎么办?
A:可能是swappiness值过高,按上面方法调低到10-20,重启后生效。

Q:我想删除旧的Swap分区,怎么操作?
A:先 swapoff /dev/旧分区,然后从 /etc/fstab 中删除对应行,最后用 fdiskparted 删除分区。

Q:可以用Swap分区而不是文件吗?
A:可以,但分区扩容不如文件灵活。文件方式适合大多数场景,且无需额外分区操作。

如果你正在处理服务器Swap分区扩容缓解OOM的问题,建议先按本文步骤完整执行,再根据自己的环境微调swappiness或Swap大小;
遇到异常时优先回看避坑和高频问题部分。

分享到:
上一篇
Nginx站点隔离防跨站入侵教程
下一篇
跨境独立站域名备案免备案区别:跨境独立站域名备案与免备案的区
1
系统公告

机房迁移升级通知

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