linux支持运行时动态管理交换空间,通过swapon/swrapoff命令挂载或卸载swap分区/文件,配合swappiness参数调控换页倾向,优先级设置优化多设备调度。

可以,Linux 支持通过 swapon 和 swapoff 命令在运行时动态挂载或卸载交换分区(或交换文件),无需重启系统。这种操作直接改变内核对虚拟内存的可用视图,是优化内存资源分布最常用、最轻量的手段之一。
确认当前交换状态
执行以下任一命令查看已启用的交换空间:
-
swapon --show—— 显示设备名、类型、大小、使用量和优先级 -
free -h—— 查看总 Swap 容量与已用/空闲量(注意单位) -
cat /proc/swaps—— 列出所有活跃 swap 条目及其路径、类型、大小和优先级
临时启用或禁用指定交换设备
适用于快速响应内存压力或测试配置效果:
- 启用一个已有格式化的交换分区或文件:
sudo swapon /dev/sdb2或sudo swapon /swapfile - 禁用某个正在使用的交换空间:
sudo swapoff /dev/sdb2或sudo swapoff /swapfile - 一次禁用全部已配置的交换空间:
sudo swapoff -a(会读取/etc/fstab并关闭其中所有 swap 条目) - 一次启用全部 fstab 中定义的交换空间:
sudo swapon -a(常用于修改 fstab 后立即生效)
调整多交换设备的优先级以优化资源调度
当系统存在多个 swap 设备(如 SSD 分区 + HDD 文件),可通过优先级控制内核使用顺序。数值越高越优先使用:
- 启用时指定优先级:
sudo swapon -p 100 /dev/nvme0n1p3 - 查看当前各设备优先级:
swapon --show输出中的 PRIORITY 列 - 若需持久化优先级,请在
/etc/fstab对应行末尾添加pri=100,例如:/dev/nvme0n1p3 none swap sw,pri=100 0 0
配合 swappiness 实现更精细的内存行为调控
仅靠挂载/卸载 swap 不足以控制“何时用”——这由 vm.swappiness 决定:
- 查看当前值:
cat /proc/sys/vm/swappiness - 临时设为 10(推荐多数服务器场景):
sudo sysctl vm.swappiness=10 - 永久生效:向
/etc/sysctl.conf追加一行vm.swappiness=10 - 值为 0 表示内核尽量避免换出匿名页(仅在内存严重不足时才使用 swap);值为 100 表示积极换出,适合桌面环境











