VPS测评
2026-10-17 04:42
VPS内存不够用:Swap配置与OOM排查记录
什么时候会内存不够
小内存 VPS(1G 以内)跑 WordPress 再加几个插件,经常会卡。表现是页面突然打不开、SSH 连接变慢、甚至服务直接挂掉。这多半是内存吃满触发了系统的 OOM(Out of Memory)机制,内核为了保自己,把最吃内存的进程杀掉了。先别着急升配,看看是真不够还是有程序在漏。
先用命令看清楚
SSH 上去敲 free -h,看 available 那一列是不是快没了。再用 top 或 htop 按内存排序,找出谁最吃内存。常见元凶是 MySQL、PHP-FPM 进程开太多,或者某个插件内存泄漏。把这些数据先记下来,再决定加内存还是加 Swap。
- available 长期低于 100M,说明真紧张。
- 某个进程内存一直涨不回落,多半是泄漏。
- Swap 已用很多,说明系统早就靠硬盘硬撑了。
Swap 怎么配
Swap 是拿硬盘当虚拟内存,速度比真内存慢几十倍,但能救命,至少不会让进程被直接杀。1G 内存的机器配 1-2G Swap 比较合理:
- 新建交换文件:fallocate -l 2G /swapfile,再 chmod 600、mkswap、swapon。
- 写进 /etc/fstab 开机自动挂载,不然重启就没了。
- 调 vm.swappiness 到 10 左右,让系统尽量先用真内存,Swap 只做兜底。
Swap 只能缓冲突发峰值,不能替代真内存,长期依赖 Swap 会因为磁盘慢而更卡。
OOM 了怎么排查
真挂了别慌,先看日志。用 dmesg | grep -i oom 或者看 /var/log/syslog,里面会写清楚内核杀了哪个进程、当时内存多少。找到那个进程,要么优化它,要么给它限制资源。WordPress 站多半是 PHP-FPM 进程数开太多,把 pm.max_children 调小反而更稳。
到底要不要升配
如果加了 Swap 还是频繁 OOM、页面还是慢,那就是真该升内存了。1G 内存做生产站确实勉强,升到 2G 体验会质的飞跃。先优化现有配置,把浪费的内存省出来,再决定加钱升配,别一卡就升级。
