在 CentOS(7/8/Stream) 中,Swap 的大小设置没有绝对标准,但可以根据 内存大小、用途(桌面 / 服务器 / 数据库) 来决定。下面给你一个 实用、可落地的建议方案。
✅ 强烈建议设置 Swap
推荐大小:
Swap = 内存的 2 倍
示例:
✅ 建议设置 Swap
推荐大小:
Swap = 内存大小 或 1.5 倍
示例:
✅ 可选,但建议设置
推荐大小:
Swap = 内存的一半 或 至少 4~8GB
示例:
⚠️ 视用途而定
| 场景 | 建议 |
|---|---|
| 数据库(MySQL / PostgreSQL) | 8~16GB Swap |
| K8s / 容器 | 4~8GB |
| 纯计算 / HPC | 可关闭 Swap |
⚠️ 数据库服务器不建议完全依赖 Swap,但保留少量 Swap 可防止 OOM。
| 内存 | 推荐 Swap |
|---|---|
| 1GB | 2GB |
| 2GB | 4GB |
| 4GB | 4~6GB |
| 8GB | 8GB |
| 16GB | 8~16GB |
| 32GB | 8~16GB |
| 64GB+ | 4~16GB |
free -h
swapon --show
dd if=/dev/zero of=/swapfile bs=1M count=4096
# 或(更快)
fallocate -l 4G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
echo '/swapfile swap swap defaults 0 0' >> /etc/fstab
fdisk /dev/sdb
# 创建 swap 分区
mkswap /dev/sdb1
swapon /dev/sdb1
cat /proc/sys/vm/swappiness
推荐值:
临时修改:
sysctl vm.swappiness=10
永久生效:
echo 'vm.swappiness=10' >> /etc/sysctl.conf
❌ 以下情况可以 关闭或减小 Swap:
⚠️ 但 不建议完全关闭,否则可能触发 OOM Killer。
CentOS Swap 设置原则:内存小就大,内存大就小,数据库要保守,服务器要留一点。
如果你愿意,可以告诉我:
我可以 直接给你一套最优配置方案。