Red Hat最新推荐Swap大小应依物理内存分段设定:≤4GB设2–4GB,4–8GB设等量,8–64GB固定8GB,>64GB通常4–8GB;SSD建议调低swappiness并设高priority,HDD仅作低频应急。
服务器 Swap 交换分区不是“配得越大越好”,而是要结合物理内存大小、负载类型和磁盘性能来合理设置。重点在于:够用、安全、可持久、可优化。
Red Hat 最新建议更实用,比老式“2 倍内存”更靠谱:
SSD 上建 Swap 没问题,但频繁交换会加速磨损;HDD 上 Swap 响应慢,只适合低频应急。数据库、Redis 等服务建议 Swap 小而快(如 NVMe 上 4GB + pri=20000),而非大而慢。
绝大多数云服务器或容器化环境推荐用 swap 文件,无需重分区,操作快、易调整:
sudo dd if=/dev/zero of=/swapfile bs=1G count=4
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
若已有空闲分区(如 /dev/sdb1),可用分区方式,I/O 更稳定:
sudo mkswap /dev/sdb1
sudo swapon /dev/sdb1
重启后失效?多半是 /etc/fstab 写错了。正确写法只有一种格式:
/swapfile none swap sw 0 0
UUID=xxxx-xxxx none swap sw,pri=20000 0 0
注意:pri= 必须紧接 sw 后、用英文逗号分隔,不能有空格;改完先执行 sudo swapon --verify 测试语法,避免系统卡在 initramfs。
这两个参数管不同事,得一起调:
pri=20000,HDD 设 pri=100,备份 Swap 可设 pri=0
10(echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf),让系统尽量靠 RAM,Swap 只作兜底例如 Redis 服务器:swappiness=1 + SSD Swap pri=20000,既减少交换频次,又确保一旦触发就走最快路径。