温馨提示×

Ubuntu Swap怎么在SSD上使用

小樊
44
2025-12-24 06:50:45
栏目: 智能运维

Ubuntu 在 SSD 上使用 Swap 的完整指南

一 方案选择

  • 使用 Swap 文件:灵活易调整大小,适合大多数桌面与服务器场景。现代内核与 SSD 上,性能与分区几乎无差。
  • 使用 Swap 分区:传统方式,连续空间、略少开销,适合对极致性能敏感或已有分区方案的环境。
  • 使用 Zswap(内核内置内存压缩):先在内存中压缩页面,只有无法压缩的才写入 SSD,显著降低写入量与延迟,推荐在 SSD 上优先启用。
  • 需要 休眠(Hibernate):必须准备足够大的 Swap(至少等于物理内存),且使用 Swap 分区更容易满足该需求。

二 快速方案 Swap 文件

  • 查看当前 Swap 状态
    • 命令:free -hswapon --showcat /proc/swaps
  • 在 SSD 上创建并启用 8GB 示例
    • 分配文件:sudo fallocate -l 8G /swapfile
    • 安全权限:sudo chmod 600 /swapfile
    • 格式化为 Swap:sudo mkswap /swapfile
    • 立即启用:sudo swapon /swapfile
  • 开机自动启用
    • 写入 fstab:echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
  • 验证:free -hswapon --show 应能看到新增的 /swapfile

三 使用 Swap 分区

  • 识别 SSD 上的目标分区(示例:/dev/nvme1n1/dev/sdX
    • 查看设备:sudo fdisk -l
  • 格式化并启用
    • 格式化:sudo mkswap /dev/nvme1n1
    • 启用:sudo swapon /dev/nvme1n1
  • 开机自动启用
    • fstab 添加:/dev/nvme1n1 none swap defaults 0 0
  • 说明:云实例或已有独立磁盘时,直接对新盘/新分区启用即可,无需挂载为目录。

四 SSD 优化与安全设置

  • 降低写入倾向
    • 查看:cat /proc/sys/vm/swappiness
    • 临时:sudo sysctl vm.swappiness=10
    • 永久:echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf
  • 减少元数据写入
    • 在 SSD 挂载项中添加 noatime(如:/dev/sdXY /mnt/ssd ext4 noatime,errors=remount-ro 0 0
  • 启用 Zswap(强烈推荐)
    • 编辑:sudo nano /etc/default/grub
    • GRUB_CMDLINE_LINUX 添加:zswap.enabled=1 zswap.compressor=lz4
    • 更新并重启:sudo update-grub && sudo reboot
  • 监控与排障
    • 观察 I/O:sudo iotop
    • 观察换入换出:vmstat 1(关注 si/so

五 容量建议与注意事项

  • 容量参考(按物理内存)
物理内存 推荐 Swap 大小 说明
2GB 2 × 内存 小内存设备必备
2–8GB = 内存 通用平衡
> 8GB 4–8GB 大内存仅作应急
> 64GB(服务器) 禁用或 1–4GB 依赖 OOM Killer 管理
  • 休眠需求:若需休眠,Swap 需 ≥ RAM 容量;使用 Swap 分区更易满足。
  • 风险提示:禁用 Swap 可能导致 OOM Killer 终止进程;调整 fstab 前建议备份,变更后可用 sudo swapon -a 测试。

0