阿里云服务器内存爆满卡死但 Swap占用为0
给服务器添加了 2GB 的 Swap 分区,却发现系统根本不使用 Swap
查看系统的 Swap 使用倾向(swappiness):
cat /proc/sys/vm/swappiness
阿里云的值是 0 ,导致系统极度不愿意使用 Swap。
解决方案
提高系统使用 Swap 的积极性:
sudo sysctl vm.swappiness=80
该设置会立即生效,将 swappiness 调整为 80,意味着:
- 系统在内存接近吃满前,就会开始将一部分内容换入 Swap;
- 可以显著降低物理内存压力,减少卡死、OOM(Out of Memory)等问题。
设置后,Swap 开始正常使用,系统运行稳定顺畅。
什么是 vm.swappiness?
vm.swappiness 是一个 Linux 内核参数,控制系统使用 Swap 的倾向。其取值范围是 0 到 100:
-
0:尽量避免使用 Swap(只在极端情况下才用); -
100:积极使用 Swap,尽快把不活跃内存换出; -
默认值:大多数发行版中为60,但某些云服务商(如阿里云)可能设为更低。
持久化配置(可选)
上述命令只在当前运行时有效,重启后会恢复。若要永久生效:
编辑配置文件:
sudo vim /etc/sysctl.conf
添加 or 修改:
vm.swappiness=80
保存后运行:
sudo sysctl -p
即可让设置在重启后仍然生效。