一聚教程网:一个值得你收藏的教程网站

热门教程

服务器 Swap 交换分区如何配

时间:2026-08-12 08:04:49 编辑:袖梨 来源:一聚教程网

Red Hat最新推荐Swap大小应依物理内存分段设定:≤4GB设2–4GB,4–8GB设等量,8–64GB固定8GB,>64GB通常4–8GB;SSD建议调低swappiness并设高priority,HDD仅作低频应急。

服务器 Swap 交换分区不是“配得越大越好”,而是要结合物理内存大小、负载类型和磁盘性能来合理设置。重点在于:够用、安全、可持久、可优化。

怎么选大小:看内存,别硬套倍数

Red Hat 最新建议更实用,比老式“2 倍内存”更靠谱:

  1. 4GB 内存 → Swap 不超过 4GB(推荐 2–4GB)
  2. 4–8GB 内存 → Swap 等于物理内存大小
  3. 8–64GB 内存 → 固定设为 8GB 即可
  4. 64GB 以上 → 通常 4–8GB 足够,除非运行内存密集型批处理任务

SSD 上建 Swap 没问题,但频繁交换会加速磨损;HDD 上 Swap 响应慢,只适合低频应急。数据库、Redis 等服务建议 Swap 小而快(如 NVMe 上 4GB + pri=20000),而非大而慢。

怎么创建:文件方式最灵活,分区方式更稳

绝大多数云服务器或容器化环境推荐用 swap 文件,无需重分区,操作快、易调整:

  1. 创建 4GB 文件:sudo dd if=/dev/zero of=/swapfile bs=1G count=4
  2. 设权限(必须!否则 swapon 拒绝):sudo chmod 600 /swapfile
  3. 格式化:sudo mkswap /swapfile
  4. 启用:sudo swapon /swapfile

若已有空闲分区(如 /dev/sdb1),可用分区方式,I/O 更稳定:

  1. 格式化:sudo mkswap /dev/sdb1
  2. 启用:sudo swapon /dev/sdb1

怎么永久生效:fstab 写对才不卡启动

重启后失效?多半是 /etc/fstab 写错了。正确写法只有一种格式:

  1. 文件方式:/swapfile none swap sw 0 0
  2. 分区方式(带优先级):UUID=xxxx-xxxx none swap sw,pri=20000 0 0

注意:pri= 必须紧接 sw 后、用英文逗号分隔,不能有空格;改完先执行 sudo swapon --verify 测试语法,避免系统卡在 initramfs。

怎么调得更稳:priority 和 swappiness 配合用

这两个参数管不同事,得一起调:

  1. priority 控制“往哪写”:多个 Swap 共存时,高 priority 先填满。SSD 设 pri=20000,HDD 设 pri=100,备份 Swap 可设 pri=0
  2. swappiness 控制“写不写”:默认 60,服务器建议调到 10echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf),让系统尽量靠 RAM,Swap 只作兜底

例如 Redis 服务器:swappiness=1 + SSD Swap pri=20000,既减少交换频次,又确保一旦触发就走最快路径。

热门栏目