Ubuntu中不存在“Swap权重”概念,实际需区分swap优先级(priority)和swappiness:前者决定多swap区域使用顺序,取值0–32767,越高越先用;后者控制内核换出内存倾向,取值0–100,与区域选择无关。

Ubuntu里没有“Swap权重”这个概念,你实际想调的是 swap 优先级(priority)或 swappiness 行为策略 —— 二者完全不是一回事,混用会导致配置失效或系统变慢。
swap 优先级(priority):决定多个 swap 区域谁先被用
当系统有多个 swap 分区或 swap 文件(比如 /swapfile + /dev/sdb1),内核需要知道按什么顺序使用它们。这个顺序由 priority 值控制,范围是 0–32767,数值越高越优先。
- 临时设置(重启失效):
sudo swapon --priority=10000 /swapfile - 永久设置:编辑
/etc/fstab,在对应 swap 条目末尾的sw后加,pri=10000,例如:/swapfile none swap sw,pri=10000 0 0 - 改完必须执行
sudo swapoff -a && sudo swapon -a才生效,sudo mount -a不管用 - 验证命令:
sudo swapon --show,看PRIORITY列是否更新
swappiness:控制“多爱用 swap”的倾向,不是优先级
很多人误以为改 swappiness 就是在调“权重”,其实它只影响内核在内存压力下把多少匿名页挪到 swap 的积极性,和 swap 区域选择顺序无关。
Ubuntu 26.04 LTS(代号“Resolute Raccoon”)是Canonical于2026年4月23日发布的下一代长期支持版操作系统,提供长达10年的技术支持。它搭载Linux 7.0内核与GNOME 50桌面环境,全面转向Wayland协议,并引入Rust重写的核心工具以增强安全性。官方提供适用于AMD64和ARM64架构的桌面及服务器ISO镜像,是追求前沿技术与极致稳定的开发者
- 取值范围 0–100:
0表示尽量不 swap(只在 OOM 前强制换出),100表示非常积极地换出 - 临时修改:
sudo sysctl vm.swappiness=10 - 永久修改:在
/etc/sysctl.conf末尾加一行vm.swappiness = 10,再运行sudo sysctl -p - 注意:设成 0 并不等于禁用 swap,只是延迟使用;真正禁用要
sudo swapoff -a并注释掉 fstab 中的 swap 行
/etc/fstab 里 pri= 写错位置会静默失败
常见错误是把 pri= 放在最后两个数字(dump/fs_pass)之间,或者写成 p=、priority= —— 这些都不被识别,swapon -a 会跳过该行且不报错。
- 正确格式只有这一种:
/swapfile none swap sw,pri=10000 0 0 -
sw是必需的挂载选项,pri=必须紧接在它后面、用英文逗号连接 - 如果 fstab 里有多个 swap 条目,确保它们的
pri值互不相同,否则内核按字典序 fallback,行为不可控
真正需要调 priority 的场景极少:一般只出现在多磁盘、混合 SSD/HDD swap,或调试内存分配路径时。日常单 swapfile 场景,swappiness 才是你该盯住的参数;而 priority 错配,最容易导致 swap 看似启用却完全不被使用 —— 因为另一个低 priority 的 swap 区域卡住了入口。

















