温馨提示×

Ubuntu Swap怎么开启最有效

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

Ubuntu 开启与优化 Swap 的高效做法

一 核心原则与大小建议

  • 优先使用 Swap 文件(灵活、易调整),而非固定分区;在有 SSD 的机器上,Swap 放在 SSD 上能显著提升速度。
  • 合理规划容量(经验值):
    • ≤2GB RAM:Swap = 2×RAM
    • 2–8GB RAM:Swap = 1.5×RAM
    • >8GB RAM:Swap ≈ 8GB
    • ≥64GB RAM:至少 32GB Swap(避免 OOM,但不必过度分配)
  • 若已启用 ZRAM(Ubuntu 22.04+ 常见),它作为内存压缩的“第一道防线”,可与磁盘 Swap 叠加使用,兼顾性能与可用性。

二 快速开启步骤(Swap 文件,立即生效且持久化)

  1. 检查是否已有 Swap:sudo swapon --showfree -h
  2. 创建 Swap 文件(示例 8GB):
    • sudo fallocate -l 8G /swapfile
    • 若失败(某些文件系统/虚拟化环境),改用:sudo dd if=/dev/zero of=/swapfile bs=1G count=8 status=progress
  3. 设置安全权限:sudo chmod 600 /swapfile
  4. 格式化为 Swap:sudo mkswap /swapfile
  5. 立即启用:sudo swapon /swapfile
  6. 开机自启(持久化):echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
  7. 验证:free -hsudo swapon --show,必要时 sudo reboot 复查。

三 使用已有分区或替换旧 Swap

  • 已有 Swap 分区(如 /dev/sdb1)临时启用:sudo swapon /dev/sdb1
  • 永久启用(推荐用 UUID,避免设备名变化):
    • 获取 UUID:ls -al /dev/disk/by-uuid
    • /etc/fstab 添加:UUID=xxxx-xxxx-xxxx none swap sw 0 0
  • 替换旧 Swap:先 sudo swapoff /旧路径或旧分区,再按上文创建/启用新的,最后删除旧文件/分区并更新 fstab。

四 性能优化关键参数

  • 降低换出倾向(桌面/通用服务器常用):
    • 临时:sudo sysctl vm.swappiness=10
    • 永久:在 /etc/sysctl.conf 添加 vm.swappiness=10
  • 适度降低 VFS 目录项/索引缓存回收压力(提升文件密集型场景表现):
    • 临时:sudo sysctl vm.vfs_cache_pressure=50
    • 永久:在 /etc/sysctl.conf 添加 vm.vfs_cache_pressure=50
  • 启用并优先使用 ZRAM(内存压缩,低延迟):
    • 安装:sudo apt install -y zram-config
    • 启用/重启后自动生效,可与磁盘 Swap 共存。

五 验证与运维要点

  • 验证命令:free -hsudo swapon --showcat /proc/sys/vm/swappinesscat /proc/sys/vm/vfs_cache_pressure
  • 容量规划提示:当 RAM ≥ 64GB 时,通常 32GB Swap 即可满足 OOM 防护需求;若长期 Swap 使用率 >50%,优先考虑增加物理内存或优化应用内存占用。
  • 安全性:Swap 文件权限必须为 600;编辑 /etc/fstab 前建议备份,变更后用 sudo mount -a 检查语法,避免启动失败。
  • 测试建议:可用 stress-ng --vm 1 --vm-bytes 3G --timeout 60s 模拟内存压力,观察 Swap 是否被合理使用。

0