温馨提示×

ubuntu swap激活步骤解析

小樊
42
2025-11-20 19:09:42
栏目: 智能运维

Ubuntu 中 Swap 的激活与常用管理

一、前置检查

  • 查看是否已有 Swap 在使用:free -hswapon --showcat /proc/swaps
  • 确认磁盘空间与路径可写(创建文件前)。
  • 需要持久化时准备编辑 /etc/fstab(操作前建议备份)。
    以上命令用于确认当前状态与后续验证,均为系统管理常用工具,适用于 Ubuntu 桌面与服务器 场景。

二、激活 Swap 的两种方式

  • 方式 A:使用 Swap 文件(灵活、易调整)

    1. 创建文件(示例 4GB):
      • 推荐:sudo fallocate -l 4G /swapfile
      • 兼容备选:sudo dd if=/dev/zero of=/swapfile bs=1M count=4096
    2. 设置安全权限:sudo chmod 600 /swapfile
    3. 格式化为 Swap:sudo mkswap /swapfile
    4. 立即启用:sudo swapon /swapfile
    5. 持久化(开机自动挂载):
      • 编辑 /etc/fstab,新增:/swapfile none swap sw 0 0
      • 或使用命令追加:echo ‘/swapfile none swap sw 0 0’ | sudo tee -a /etc/fstab
    6. 验证:free -hswapon --show 应能看到 /swapfile
      说明:fallocate 更快,但在少数文件系统/环境上可能不可用,此时使用 dd 更稳妥。
  • 方式 B:使用 Swap 分区(传统、性能略优)

    1. 确认或创建分区(如 /dev/sdaX),并格式化为 Swap:sudo mkswap /dev/sdaX
    2. 立即启用:sudo swapon /dev/sdaX
    3. 持久化:
      • 使用设备路径:/dev/sdaX none swap sw 0 0(写入 /etc/fstab
      • 或使用 UUID(更稳健,推荐):
        • 获取 UUID:sudo blkid
        • 写入:UUID=xxxx none swap sw 0 0(将 xxxx 替换为实际 UUID)
    4. 验证:free -hswapon --show
      说明:分区方式大小固定、调整不便;使用 UUID 可避免设备名变化导致挂载失败。

三、验证与常用管理

  • 验证是否生效:free -h(看 Swap 总量与已用)、swapon --show(列出活跃 Swap)、cat /proc/swaps
  • 临时关闭全部 Swap:sudo swapoff -a;验证:free -hswapon --show
  • 永久关闭:编辑 /etc/fstab,注释或删除与 Swap 相关的行,保存后重启验证。
  • 调整 Swap 使用倾向(swappiness,范围 0–100):
    • 查看:cat /proc/sys/vm/swappiness
    • 临时修改(示例设为 10):sudo sysctl vm.swappiness=10
    • 永久修改:echo ‘vm.swappiness=10’ | sudo tee -a /etc/sysctl.conf
      提示:服务器为减少磁盘 I/O 可设较低值(如 10),桌面环境常用默认值 60

四、大小建议与性能优化

  • 推荐 Swap 大小(经验值,按场景微调):
    物理内存 推荐 Swap 说明
    ≤ 2GB 2 × 内存 小内存设备必备
    2–8GB ≈ 内存大小 平衡模式
    > 8GB 4–8GB 大内存仅作应急
    > 64GB(服务器) 禁用或 1–4GB 依赖 OOM Killer 管理
  • 性能优化要点:
    • 优先使用 SSD/NVMe,显著降低 Swap 延迟。
    • 启用 Zswap(内核 4.0+):在 /etc/default/grubGRUB_CMDLINE_LINUX 中添加
      zswap.enabled=1 zswap.compressor=lz4,执行 sudo update-grub && sudo reboot
    • 监控 vmstat 1si/so(Swap In/Out),判断 Swap 压力与 I/O 是否异常。

0