swap分区扩容缓解服务器频繁OOM内存溢出

当你发现服务器频繁报出“Out of memory”错误,甚至关键进程被系统强制杀死(OOM Killer),很可能是物理内存不足,而swap分区太小或未配置。swap分区(交换分区)本质是磁盘空间模拟出的内存,虽然速度远不及物理内存,但能有效防止因内存耗尽导致的进程崩溃。
这篇文章会带你从零开始扩容swap分区,让服务器喘口气。

动手前先看这两点

扩容前需要确认两件事:当前swap用量和可用磁盘空间。
执行以下命令检查当前swap状态:

swapon --show
free -h

如果swapon --show没有输出,说明没有启用任何swap。
接着用df -h查看根目录或你想存放swap文件的目录是否有足够空闲磁盘。
一般建议swap大小为物理内存的1-2倍,但如果磁盘紧张,至少能划出1-2GB来应急。

创建并启用新的swap文件(最快方法)

如果你没有独立swap分区,创建swap文件是最灵活的方式。
以下步骤使用fallocate快速分配一个2GB的交换文件,你也可以根据需要调整大小。

  1. 创建交换文件(以2GB为例):
   sudo fallocate -l 2G /swapfile

如果系统不支持fallocate,可以用dd命令替代:

   sudo dd if=/dev/zero of=/swapfile bs=1M count=2048
  1. 设置正确的权限(只有root可读写):
   sudo chmod 600 /swapfile
  1. 将文件格式化为swap格式:
   sudo mkswap /swapfile
  1. 激活这个swap文件:
   sudo swapon /swapfile
  1. 检查是否生效:
   swapon --show
   free -h

如果看到刚才的/swapfile出现在列表中,说明扩容成功。

开机自动挂载(避免重启后失效)

修改/etc/fstab文件,让系统每次启动自动加载swap文件。
用文本编辑器打开该文件:

sudo nano /etc/fstab

在文件末尾添加一行:

/swapfile none swap sw 0 0

保存退出。
这样重启后swap依然生效。

常见避坑点

  • 不要使用磁盘空间不足的目录:如果根目录容量紧张,可以考虑在数据盘目录下创建swap文件,但注意性能差异。
  • swap文件大小不宜过大:一般不超过物理内存的2倍,超过8GB会造成磁盘IO过度。如果物理内存已很大(比如32GB),扩展swap意义不大,建议排查应用内存泄漏。
  • 优先级设置:如果有多个swap来源(比如既有分区又有文件),可以通过swapon -p设置优先级,值越高优先使用。
  • OOM问题可能不是swap能完全解决:swap只是临时缓解,如果应用程序持续消耗大量内存,仍需优化代码或增加物理内存。

验证扩容效果

执行free -h查看swap total是否为你设置的大小。
你还可以手动触发一次内存压力测试(仅测试环境):

sudo stress --vm 2 --vm-bytes 2G --vm-hang 5

观察htopfree,看swap使用量是否上升,系统是否有OOM报错。
如果没有报错,说明扩容生效。
线上环境不建议运行压力测试,请直接观察业务运行情况。

如果遇到“swapon failed: Operation not permitted”,请检查是否以root用户执行,或确认SELinux是否拦截。临时关SELinux测试:sudo setenforce 0,如果恢复正常,需要为swap文件添加安全上下文。

至此,你已经成功为服务器扩容了swap分区,OOM Killer应该不会再频繁叫醒你了。
如果问题依然存在,建议结合dmesg | tail -20查看具体是哪个进程引起的内存溢出,从应用层面做进一步优化。

分享到:
上一篇
定时清理磁盘日志防止站点磁盘空间爆满
下一篇
宝塔修改SSH端口抵御全网端口扫描攻击
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 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意