简短结论:
在 CentOS(以及大多数 Linux) 里,开启 Swap 本身不会“坏”,但会影响性能和使用体验,是否开启要看你的服务器用途和内存情况。
一、开启 Swap 会有什么影响?
✅ 正面影响(好处)
- 防止内存耗尽导致进程被 OOM Kill
- 当物理内存不够时,系统会把不常用的内存页换到 Swap,避免程序直接崩溃。
- 提高系统稳定性(尤其是小内存机器)
- 1–2G 内存的服务器,不开 Swap 很容易卡死。
- 适合突发内存场景
❌ 负面影响(代价)
- 性能下降(明显)
- Swap 在磁盘上,速度比内存慢 几十到上百倍
- 一旦频繁使用 Swap(swap thrashing),系统会明显卡顿
- 磁盘 IO 压力增大
- 数据库 / 高并发服务不友好
- MySQL、Redis、ES 等 强烈不建议频繁使用 Swap
二、CentOS 中是否该开启 Swap?
✅ 建议开启的情况
- 内存 ≤ 2G
- 桌面 / 开发 / 测试环境
- 非实时、非高并发服务
- 云服务器(防止 OOM)
❌ 不建议开启 / 要谨慎的情况
- 内存 ≥ 8G 且负载稳定
- 数据库服务器(MySQL / PostgreSQL)
- Redis、Kafka、Elasticsearch
- 对延迟极其敏感的服务
三、Swap 开启 ≠ 一定会用
你可以通过 swappiness 控制系统“多积极使用 Swap”。
查看当前 swappiness
cat /proc/sys/vm/swappiness
默认一般是 30(CentOS 7/8)
推荐设置
| 场景 |
swappiness |
| 数据库服务器 |
1–10 |
| 普通服务器 |
10–30 |
| 小内存机器 |
30–60 |
临时修改
sysctl vm.swappiness=10
永久修改
vim /etc/sysctl.conf
添加:
vm.swappiness=10
生效:
sysctl -p
四、如何判断 Swap 是否“影响性能”?
看 Swap 是否被频繁使用
free -h
vmstat 1
重点看:
si / so 是否长期不为 0
- swap used 是否持续增长
如果 si/so 一直有值 → 已经在影响性能了。
五、总结一句话
Swap 是“保命用的”,不是“加速用的”。
开启不会坏,但 用多了一定慢。
如果你愿意,可以告诉我:
- CentOS 版本(7 / 8 / Stream)
- 内存大小
- 跑的是什么服务(MySQL / Docker / 网站 / 桌面)
我可以给你一个 最合适的 Swap + swappiness 配置方案。