1. 调整Swappiness内核参数
Swappiness是控制内核将内存数据换出到Swap空间的倾向性参数,取值范围为0-100(0表示尽量不使用Swap,100表示积极使用)。默认值通常为60,对于桌面或内存充足的服务器,降低该值可减少不必要的磁盘交换,提升性能。
sudo sysctl vm.swappiness=10(将值设为10,适用于大多数场景)。/etc/sysctl.conf文件,添加vm.swappiness=10,然后运行sudo sysctl -p使更改生效。2. 优化Swap空间大小与类型
3. 使用zRAM/zswap减少磁盘IO
zRAM是在内存中创建的压缩块设备,zswap是在内存中创建的压缩缓存,两者均能减少对物理Swap空间的访问,提升性能。
zram-config包(sudo apt install zram-config),系统会自动创建并启用zRAM设备(默认大小为物理内存的25%);可通过编辑/etc/default/zramswap调整大小。/etc/default/grub,在GRUB_CMDLINE_LINUX_DEFAULT中添加zswap.enabled=1 zswap.compressor=lz4 zswap.max_pool_percent=20(启用zswap,使用LZ4压缩算法,最大占用20%内存),然后更新GRUB(sudo update-grub)并重启。4. 使用多个Swap分区/文件均衡负载
多个Swap分区或文件可让系统以轮询方式分配交换任务,均衡磁盘IO负载,提升整体交换效率。
/swapfile1、/swapfile2),分别格式化(sudo mkswap /swapfile1)并启用(sudo swapon /swapfile1);或在/etc/fstab中添加多个Swap分区条目(如/dev/sda1 none swap sw 0 0、/dev/sdb1 none swap sw 0 0),系统会自动轮询使用。5. 调整Swap分区优先级
通过swapon -p命令为Swap分区设置优先级(数值越小,优先级越高),可控制系统优先使用哪个Swap空间。例如,将SSD上的Swap分区设为高优先级(如sudo swapon -p 1 /dev/sda1),将HDD上的Swap分区设为低优先级(如sudo swapon -p 2 /dev/sdb1),优先使用更快的存储介质。
6. 监控与清理Swap使用
定期监控Swap使用情况,及时清理不必要的Swap文件或分区,避免资源浪费。
free -h(查看内存与Swap总用量)、swapon --show(查看当前启用的Swap详情)、htop(实时监控进程内存与Swap使用)等命令。sudo swapoff -v /swapfile),删除文件(sudo rm /swapfile),并从/etc/fstab中移除对应条目(避免重启后自动启用)。7. 增加物理内存(终极方案)
Swap本质是物理内存不足时的补充,增加物理内存(RAM)是最有效的提升交换效率的方式。内存充足时,系统对Swap的依赖会大幅降低,从而减少磁盘IO,提升整体性能。