1. 调整swappiness参数,降低交换频率
swappiness是控制内核将内存数据换出至交换空间倾向的参数,默认值为60(范围0-100)。值越高,系统越倾向于使用交换空间,反之则优先保留物理内存。降低该值可显著减少不必要的交换操作,从而降低延迟。
sudo sysctl vm.swappiness=10(推荐值10-30,具体根据内存大小调整)。/etc/sysctl.conf文件,末尾添加vm.swappiness=10,保存后运行sudo sysctl -p使配置生效。2. 合理配置交换空间大小,避免过度或不足
交换空间并非越大越好,需结合物理内存大小调整:
3. 使用SSD替代HDD作为交换介质
SSD的读写速度(约500-3000MB/s)远高于HDD(100-200MB/s),将交换空间放在SSD上可大幅减少交换操作的延迟。若系统支持,优先选择NVMe SSD(读写速度可达3000-7000MB/s),其性能提升更为明显。
4. 使用zram替代传统交换空间,提升交换速度
zram是Linux内核提供的压缩内存驱动,可在内存中创建压缩的块设备作为交换空间。相比传统SSD交换,zram避免了磁盘I/O瓶颈,且压缩后的数据占用更少内存,适合内存有限的系统。
zram:sudo apt install zram-config(Ubuntu 22.04及以上版本内置);/etc/default/zramswap,调整SIZE参数(如SIZE=2G表示分配2GB内存作为交换空间);sudo systemctl restart zramswap。5. 监控与清理内存,减少对交换空间的依赖
定期监控系统内存和交换空间使用情况,及时释放不必要的内存占用:
free -h命令查看内存和交换空间使用率;swapon --show命令查看当前启用的交换空间;6. 删除不必要的交换文件或分区
若系统有多个交换文件或分区(如同时存在交换分区和交换文件),可删除不常用的交换空间,避免系统在多个交换介质间切换导致的延迟。
sudo swapoff -v /swapfile;sudo rm /swapfile;/etc/fstab中移除相关条目(编辑文件,删除对应的swap行)。