在 Ubuntu(以及一般的 Linux 系统)中,swap 优先级主要通过 swappiness 和 swap 分区的 priority 两个层面来控制。下面分别说明。
swappiness 决定系统什么时候开始使用 swap,而不是 swap 之间的优先级。
cat /proc/sys/vm/swappiness
默认值通常是 60。
sudo sysctl vm.swappiness=10
编辑配置文件:
sudo nano /etc/sysctl.conf
添加或修改:
vm.swappiness=10
生效:
sudo sysctl -p
值越小越“不愿意”用 swap(适合内存充足的服务器)
值越大越“积极”用 swap(适合桌面或内存紧张环境)
如果你有 多个 swap(分区或文件),可以通过 priority 控制谁先被使用。
swapon --show
/etc/fstab 中设置 priority示例:
/dev/sdb1 none swap sw,pri=100 0 0
/swapfile none swap sw,pri=10 0 0
说明:
pri=100 优先级更高,会优先使用pri=0 最低sudo swapoff -a
sudo swapon -a
/dev/nvme0n1p2 none swap sw,pri=100 0 0
/dev/sda1 none swap sw,pri=1 0 0
让 SSD swap 优先。
不需要设置 priority,只调 swappiness 即可。
如果你愿意,可以告诉我:
我可以给你一套最适合你的配置。