温馨提示×

ubuntu swap启动顺序如何设置

小樊
44
2025-11-22 18:26:32
栏目: 智能运维

Ubuntu 调整 Swap 启动顺序与优先级

一、核心概念与查看方式

  • 启动顺序由每个交换设备的优先级 Priority决定,数值越大越优先被使用;若未显式设置,系统可能分配默认优先级(常见为**-1/-2**),导致顺序不符合预期。
  • 查看当前交换设备与优先级:
    • 命令:swapon -sswapon --show
    • 示例输出:
      Filename                Type      Size    Used  Priority
      /dev/nvme0n1p6        partition 8000508  0     -2
      /swapfile             file      2097148  0     -1
      
    以上信息用于确认当前各 swap 的启用状态与优先级,从而决定如何调整顺序。

二、临时调整优先级(立即生效,重启后失效)

  • 使用 swapon -p <优先级> <设备/文件> 调整某个交换项的优先级,例如:
    • 将分区设为高优先级:sudo swapon -p 100 /dev/nvme0n1p6
    • 将 swapfile 设为次高优先级:sudo swapon -p 50 /swapfile
  • 优先级取值范围:0 ~ 32767,数值越大越优先;若多个交换项优先级相同,系统会同时使用它们。
  • 调整后用 swapon -s 再次核对顺序是否已变化。

三、永久调整优先级(开机生效)

  • 方法一:在 /etc/fstab 中为交换项添加 pri=<N> 参数(推荐)
    • 交换分区示例:/dev/nvme0n1p6 none swap sw,pri=100 0 0
    • 交换文件示例:/swapfile none swap sw,pri=50 0 0
    • 说明:使用 pri= 明确指定优先级,避免依赖系统默认分配。
  • 方法二:使用 UUID 提高稳健性(设备名可能变化)
    • 获取 UUID:blkid
    • 写入 fstab:UUID=<你的UUID> none swap sw,pri=100 0 0
  • 使配置生效:
    • 先关闭再启用全部:sudo swapoff -a && sudo swapon -a
    • 或仅重载 fstab:sudo swapon --all
  • 核对:swapon -s 应显示新的优先级顺序。

四、常见场景与建议

  • 场景一:优先使用SSD 上的交换分区,其次再用 swapfile
    • 设置:/dev/nvme0n1p6pri 高于 /swapfile(如 10050)。
  • 场景二:存在 ZRAM(压缩内存)时
    • ZRAM 通常优先级最高,无需额外设置;如需调整,可修改其 systemd 服务或内核参数。
  • 场景三:删除或替换默认 swapfile
    • 关闭并删除:sudo swapoff -v /swapfile && sudo rm /swapfile
    • /etc/fstab 删除对应行,避免开机报错。
  • 验证:每次调整后执行 swapon -sfree -h 观察是否按预期优先使用目标交换设备。

0