有一台2G内存的云服务器,跑着几个 WordPress 站。
有次流量突增,MySQL 直接被系统 OOM(Out of Memory)杀掉了。
后来查原因,发现是内存爆了,而我根本没开 Swap。
从那以后,我在所有 2G 及以下内存的机器上,都手动开了 Swap。
今天说说为什么。
一、Swap 是什么?
简单说,Swap 是用硬盘空间模拟内存。
当物理内存不够时,系统会把一部分不活跃的数据“挪”到 Swap 分区,腾出 RAM 给紧急任务。
它不能提升性能,但能防止程序被直接杀死。
就像你书桌太小,就把暂时不用的书塞进抽屉——桌面空出来了,虽然拿书慢点,但至少还能继续写作业。
不仅不能提升性能,反而是拖累性能的。
二、2G 内存到底需不需要 Swap?
我的结论是:,看情况,有的时候需要,而且很有必要。
尤其当你跑的是:
WordPress + MySQL
Node.js / Python 后端
定时任务(如备份)
这些服务在低谷时内存够用,但遇到突发请求(比如蜘蛛集中爬、用户登录高峰),内存瞬间打满。

没有 Swap,Linux 内核只能启动 OOM Killer,随机干掉一个进程。
有了 Swap,系统会先把闲置进程换出,给关键服务留活路。

哪怕只是多撑10秒,也能等过峰值。
三、云服务器开 Swap 有什么问题?
很多人说:“云盘是 SSD,但频繁读写会损耗,还可能影响性能。”
这没错。
但要注意:
Swap 不是常驻使用,只在内存压力大时才启用。
2G 机器日常内存占用 1.5G,Swap 可以几乎不碰。
即便触发,也只是临时缓存,不是高频读写数据库。
我实测:开启 2GB Swap 后,服务器运行三个月,Swap 使用率还行略高,本身也可以设置参数swappiness值来控制是否更倾向于使用它。
如果你是个人站长和开发者,你还没有自己的服务器,日常测试开发学习,推荐几个还可以性价比高的服务器,有99元1年续费同价,也有3年期的服务器可选,2G内存或者4G内存的都有。
四、怎么开?很简单
以 Ubuntu/Debian 为例:
# 创建 2GB 的 swap 文件
sudo fallocate -l 2G /swapfile
# 设置权限
sudo chmod 600 /swapfile
# 格式化为 swap
sudo mkswap /swapfile
# 启用
sudo swapon /swapfile
# 开机自启:加一行到 /etc/fstab
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
阿里云、腾讯云的 CentOS 也类似,只是用 dd 替代 fallocate。
或者宝塔面板中,在Linux工具箱中可以直接设置Swap大小。
建议大小:
1G 内存 → 开 2G Swap
2G 内存 → 开 1–2G Swap
≥4G 内存 → 可不开,或开 1G 应急
五、注意事项
别指望 Swap 提升速度——它比内存慢百倍,只是“保命”用。
不要用在高 IO 业务上:比如数据库主节点、实时交易系统。
监控 Swap 使用:用
free -h或htop,如果长期 >50%,说明真该升级内存了。
最后
小内存服务器开 Swap,不是“性能优化”,而是“生存策略”。
它不能让你飞,但能防止你摔。
虽然可能降低性能的代价,但是能够保持稳定运行!
我的 2G 小鸡,自从开了 Swap,再也没被 OOM 杀过进程。
花两分钟配置,换来几个月安心。
这笔账,怎么算都值。
本文链接:https://kinber.cn/post/6188.html 转载需授权!
推荐本站淘宝优惠价购买喜欢的宝贝:

支付宝微信扫一扫,打赏作者吧~
