在 CentOS(以及大多数 Linux 系统)中,swap 是否有必要,取决于你的服务器用途、内存大小和稳定性要求。下面分情况讲清楚。
一、Swap 是干什么的?
Swap 是磁盘上的一块空间,用来在物理内存不足时临时存放内存数据。
主要作用:
- 内存不够时,避免直接 OOM(Out Of Memory)杀进程
- 把不常用的内存页换出,腾出内存给更需要的程序
- 某些场景(如休眠)必须使用 swap
二、什么时候「有必要」
✅ 1. 物理内存较小(< 4G)
- 1–2G 内存:强烈建议 swap
- 2–4G 内存:建议有 swap(如 2G)
否则:
- 容易 OOM
- 服务(MySQL、Java、Nginx)可能被杀
✅ 2. 生产服务器(尤其重要业务)
即使内存够用,也建议保留 swap:
- 防止突发内存峰值
- 避免进程被意外 kill
- 给运维留出反应时间
常见做法:
- 内存 ≥ 8G:swap 2–4G 即可
- 云服务器:1–2G swap 也够用
✅ 3. 使用内存型应用
- Java(JVM)
- Elasticsearch
- Redis(虽不建议 swap,但保命用)
- 数据库
这些程序内存波动大,有 swap 更稳
三、什么时候「可以不必要」
❌ 1. 大内存 + 稳定负载
例如:
- 32G / 64G 内存
- 负载稳定
- 不允许 swap 拖慢性能
可:
- 关闭 swap
- 或把
swappiness 调很低(如 1)
❌ 2. 高性能 / 低延迟场景
Swap 会:
如:
可禁用 swap
四、CentOS 推荐做法(实战)
查看 swap
free -h
swapon -s
调整 swap 使用倾向
cat /proc/sys/vm/swappiness
默认值通常是 30
建议:
临时:
sysctl vm.swappiness=10
永久:
echo "vm.swappiness=10" >> /etc/sysctl.conf
sysctl -p
五、总结一句话
CentOS 不是“必须”有 swap,但生产环境几乎都“应该有”。
简单结论:
- 小内存 → 必须有
- 生产服务器 → 建议有
- 大内存 + 高性能 → 可不用
如果你愿意,可以告诉我:
我可以直接给你具体 swap 大小建议。