应调整swap分区优先级,方法包括:一、在/etc/fstab中添加pri=n参数永久设置;二、用swapon --priority或-p临时调整;三、多设备时按性能差异分配高低优先级(0–32767),确保高速设备优先使用。

如果您在银河麒麟操作系统中运行内存密集型任务时发现系统未按预期使用Swap分区,或多个Swap设备间调度失衡,则可能是Swap分区优先级配置不合理所致。以下是调整Swap分区优先级的多种可行方法:
一、通过/etc/fstab文件永久设置Swap优先级
该方法将优先级参数写入系统启动配置,确保每次开机后Swap设备均以指定优先级激活,适用于需长期稳定运行的生产环境。
1、执行命令备份原始fstab文件:sudo cp /etc/fstab /etc/fstab.bak
2、使用vim编辑fstab:sudo vim /etc/fstab
3、定位当前Swap条目,其格式通常为:UUID=xxxx-xxxx none swap sw 0 0 或 /dev/mapper/klas-swap none swap sw 0 0
4、在该行末尾的sw参数后添加pri=N(N为0–32767之间的整数),例如设为100:UUID=xxxx-xxxx none swap sw,pri=100 0 0
5、保存退出后,执行sudo mount -a重新加载所有挂载项,使fstab变更生效。
二、使用swapon命令临时调整Swap优先级
该方法无需修改系统配置文件,适用于快速验证不同优先级效果或临时调试场景,但重启后失效。
1、查看当前启用的Swap设备及其优先级:sudo swapon --show
2、停用目标Swap设备(以/dev/sda2为例):sudo swapoff /dev/sda2
3、以新优先级重新启用:sudo swapon --priority 200 /dev/sda2
4、再次运行swapon --show确认PRIORITY列已更新为200。
三、使用swapon -p选项设置优先级(兼容旧版语法)
该方式与方法二功能一致,采用传统短参数形式,对部分定制化内核或精简镜像兼容性更佳。
1、确认目标Swap设备路径:cat /proc/swaps | awk 'NR>1 {print $1}'
2、停用该设备:sudo swapoff /dev/mapper/klas-swap
3、以优先级值150重新挂载:sudo swapon -p 150 /dev/mapper/klas-swap
4、验证结果:free -h 中Swap行应正常显示,且swapon --show输出中对应设备PRIORITY列为150。
四、多Swap设备场景下的优先级协同配置
当系统存在多个Swap设备(如一个SSD上的swapfile与一个HDD上的swap分区)时,可通过差异化优先级实现性能与寿命平衡:高优先级分配给高速设备,低优先级保留给大容量低速设备。
1、为SSD上的swapfile设置高优先级(如250):sudo swapon --priority 250 /usr/swap/swapfile
2、为HDD上的swap分区设置较低优先级(如50):sudo swapon --priority 50 /dev/sdb1
3、检查双设备是否同时启用且优先级不冲突:swapon --show | grep -E "(swapfile|sdb1)"
4、若需持久化该策略,须分别在/etc/fstab中为两个设备条目添加对应pri=参数,并确保无重复挂载。











