在 CentOS(以及大多数 Linux 发行版)中,swap 的大小并没有绝对标准,通常根据 内存大小、系统用途、是否启用休眠(hibernate) 来决定。下面是常见经验建议:
一、通用推荐(不休眠)
内存 ≤ 2GB
- swap = 内存的 2 倍
- 例:1GB 内存 → 2GB swap
内存 2GB ~ 8GB
- swap = 内存大小
- 例:4GB 内存 → 4GB swap
内存 8GB ~ 64GB
- swap = 4GB ~ 8GB
- 例:16GB 内存 → 4–8GB swap
内存 > 64GB
- swap = 4GB 左右即可
- 服务器通常不需要太大 swap
二、如果启用休眠(hibernate)
⚠️ CentOS 服务器一般不推荐休眠
- swap ≥ 内存大小 + 一点余量
- 例:16GB 内存 → 至少 16–20GB swap
三、不同用途建议
1️⃣ 个人桌面 / 开发机
- swap 稍大一点更稳妥
- 建议:内存 1~1.5 倍
2️⃣ 生产服务器(Web / DB / 应用)
3️⃣ 数据库服务器(MySQL / PostgreSQL)
- swap 不宜过大
- 避免 swap 抖动影响性能
- 通常:
- 关闭或仅留 2–4GB
- 并调低
swappiness
四、CentOS 中查看与调整
查看当前 swap
free -h
swapon --show
调整 swappiness(默认 30)
cat /proc/sys/vm/swappiness
临时修改:
sysctl vm.swappiness=10
永久修改:
echo "vm.swappiness=10" >> /etc/sysctl.conf
sysctl -p
五、简单结论(最常用)
| 内存 |
推荐 swap |
| ≤2G |
2×内存 |
| 2–8G |
=内存 |
| 8–64G |
4–8G |
| >64G |
4G |
如果你愿意,可以告诉我:
- CentOS 版本(7 / 8 / Stream)
- 内存大小
- 是服务器还是桌面
我可以给你更精确的建议或具体创建 swap 的命令。