温馨提示×

Ubuntu Swap如何优化磁盘空间

小樊
34
2025-12-06 12:17:41
栏目: 云计算

Ubuntu Swap 磁盘空间优化指南

一 核心思路

  • 明确目标:在保证稳定性的前提下,减少不必要的磁盘占用,同时避免频繁换页导致的卡顿。
  • 优先顺序:先“控使用”(降低换出频率)、再“调大小”(匹配内存与场景)、最后“选实现”(分区/文件、启用压缩/休眠)。
  • 关键手段:调整内核参数(如 swappiness)、启用 Zswap(内存压缩)、合理设置 Swap 大小、优先使用 SSD/NVMe、必要时清理或迁移现有 Swap。

二 快速检查与定位

  • 查看内存与 Swap 使用:运行 free -h;查看活跃交换设备:swapon --show;查看详细:cat /proc/swaps
  • 观察换页压力:运行 vmstat 1,关注 si/so(Swap In/Out),持续大于 0 表示存在换页,数值越大压力越高。
  • 检查磁盘空间:df -h;定位大目录:du -hs 目录名。这些有助于判断是否需要扩容或清理。

三 优化策略与推荐配置

  • 调整 swappiness(控制内核使用 Swap 的积极性,范围 0–100
    • 查看:cat /proc/sys/vm/swappiness(默认多为 60
    • 临时降低换出倾向(示例设为 10):sudo sysctl vm.swappiness=10
    • 永久生效:在 /etc/sysctl.conf 添加 vm.swappiness=10 后重启或执行 sysctl -p
    • 经验值:桌面可保留 60;服务器常见 10;若需尽量不使用 Swap 可设 0(风险是更易触发 OOM)。
  • 启用 Zswap(内核 4.0+,先压缩再写盘,显著减少磁盘 I/O)
    • 编辑 /etc/default/grub,在 GRUB_CMDLINE_LINUX 添加:zswap.enabled=1 zswap.compressor=lz4
    • 更新并重启:sudo update-grub && sudo reboot
    • 适合 SSD/NVMe,能降低 Swap 读写对响应时间的影响。
  • 合理设置 Swap 大小(按内存与用途)
    • ≤ 2GB:2 × 内存(小内存设备必备)
    • 2–8GB:≈ 内存大小
    • > 8GB:4–8GB(大内存多为应急与缓冲)
    • 服务器 > 64GB:1–4GB 或禁用(依赖 OOM Killer 策略)
    • 需要休眠(Hibernate)的设备:Swap 容量应 ≥ 物理内存。
  • 选择实现方式(分区 vs 文件)
    • Swap 分区:性能略高、大小固定;适合传统场景或 HDD
    • Swap 文件:灵活易调、性能略低;适合 SSD/NVMe 与现代系统。
  • 使用 SSD/NVMe 并监控
    • 优先将 Swap 放在 SSD/NVMe 上以降低延迟;用 vmstat 1 持续观察 si/so 判断配置是否合理。

四 扩容与清理的实操步骤

  • 创建或扩容 Swap 文件(示例设为 8GB
    • 创建:sudo fallocate -l 8G /swapfile(若失败可用 dd if=/dev/zero of=/swapfile bs=1M count=8192
    • 权限:sudo chmod 600 /swapfile
    • 格式化:sudo mkswap /swapfile
    • 启用:sudo swapon /swapfile
    • 开机自启:在 /etc/fstab 写入 /swapfile none swap sw 0 0
    • 验证:free -hswapon --show
  • 调整现有 Swap 文件大小
    • 关闭:sudo swapoff /swapfile
    • 删除旧文件:sudo rm /swapfile
    • 按上节步骤创建新大小并启用,更新 /etc/fstab
  • 使用 Swap 分区(示例 /dev/sdaX/dev/nvme0n1pX
    • 格式化:sudo mkswap /dev/sdaX
    • 启用:sudo swapon /dev/sdaX
    • 开机自启:在 /etc/fstab 写入 /dev/sdaX none swap sw 0 0(或按 UUID 更稳健)。
  • 清理与迁移
    • 若存在无用的 /swapfile 且已启用分区,先 swapoff /swapfile、再 rm /swapfile,避免重复占用。
  • 风险提示
    • 调整前备份重要数据;操作 Swap 会影响系统性能与稳定性;在 SSD 上大量 Swap 会缩短寿命(视写入量与策略而定)。

0