在 CentOS(以及绝大多数 Linux 发行版)里,swap 是否有必要开,取决于你的服务器用途、内存大小和稳定性要求。简单结论先给出来:
一、什么时候「建议开 swap」
1️⃣ 物理内存较小(≤ 4G,尤其 ≤ 2G)
- 很容易出现内存吃满
- 没 swap 会直接 OOM Killer 杀进程,甚至服务崩
- ✅ 强烈建议开
典型场景:
2️⃣ 运行关键业务 / 生产环境
- 即使内存够,也建议留一点 swap
- 作用不是“常用”,而是 保命
- 防止突发内存峰值导致服务中断
✅ 推荐:
swap = 内存的 1~2 倍(小内存) 或 2~4G(大内存)
3️⃣ 使用休眠(hibernate)
二、什么时候「可以不开 swap」
1️⃣ 大内存服务器(≥ 16G,且负载稳定)
- 比如:
- 内存几乎用不完
- 不开 swap 性能略好(避免 swap 抖动)
⚠️ 但风险是:
2️⃣ 高性能计算 / 低延迟场景
- swap 会导致延迟不可控
- 通常 明确关闭 swap
三、CentOS 中 swap 的真实作用
- 不是“内存不够才用”
- 而是:
- Linux 很依赖 Page Cache,swap 有助于整体效率
四、CentOS 7 / 8 / Stream 建议配置
小内存(≤ 4G)
swap = 2G ~ 4G
中内存(8G)
swap = 4G
大内存(16G+)
swap = 2G ~ 4G(可选)
五、如果你不想用 swap,但怕 OOM
可以:
sysctl vm.swappiness=10
(默认通常是 30)
六、一句话总结
普通 CentOS 服务器:建议开 swap,哪怕不大
大内存、可控环境:可以不开,但要接受风险
如果你愿意,可以告诉我:
- CentOS 版本
- 内存大小
- 用途(Web / 数据库 / Docker / K8s)
我可以直接给你一个最合适的 swap 方案。