1. 调整Swap空间大小
Swap空间的大小直接影响系统内存不足时的应对能力。一般建议为物理内存的1.5-3倍(如4GB内存建议6-12GB Swap);若内存较大(如16GB以上),可适当减小Swap大小(如8GB),避免过度占用硬盘空间。创建或扩展Swap文件的方法:使用sudo fallocate -l 4G /swapfile创建指定大小的Swap文件,通过sudo chmod 600 /swapfile设置权限(仅root可读写),用sudo mkswap /swapfile格式化为Swap空间,最后用sudo swapon /swapfile启用,并添加到/etc/fstab文件(echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab)以实现开机自动加载。
2. 优化Swappiness内核参数
Swappiness(范围0-100)控制内核将内存数据换出到Swap的倾向。默认值通常为60,数值越高,系统越倾向于使用Swap,可能导致频繁磁盘I/O(尤其是机械硬盘)。建议将值设置为10-30(更倾向于使用物理内存),以提升系统响应速度。临时调整用sudo sysctl vm.swappiness=10,永久生效则编辑/etc/sysctl.conf文件,添加vm.swappiness=10后运行sudo sysctl -p使更改生效。
3. 使用SSD作为Swap存储
SSD的读写速度远高于传统机械硬盘(HDD),将Swap空间放在SSD上可显著减少交换操作的延迟。若系统已有SSD,建议将Swap文件或分区创建在SSD上(如根分区位于SSD时,直接创建Swap文件即可)。
4. 启用zram压缩交换空间
zram是一种内核压缩内存技术,它在内存中创建压缩的块设备作为Swap空间,无需额外硬盘空间,且能减少对物理硬盘的访问。配置方法:安装zram-config包(sudo apt update && sudo apt install zram-config),安装后会自动启用zram(默认分配内存的1/2作为压缩Swap);可通过编辑/etc/default/zramswap文件调整压缩算法(如ALGO=lz4,压缩率更高)或Swap大小。
5. 监控Swap使用情况
定期监控Swap使用情况有助于及时发现问题并调整配置。常用命令:free -h(查看内存和Swap的总使用量及剩余量)、swapon --show(查看当前启用的Swap文件/分区及其大小、使用率)、top/htop(实时查看进程的内存和Swap占用情况)。通过监控可判断Swap是否过度使用(如Swap使用率长期超过50%),进而决定是否需要增加Swap大小或调整Swappiness。
6. 考虑使用多个Swap分区/文件
多个Swap分区或文件可均衡磁盘I/O负载,提高交换效率。例如,同时使用一个Swap文件和一个Swap分区,系统会以轮询方式使用它们,减少单一磁盘的瓶颈。配置多个Swap文件的方法:重复创建Swap文件的步骤(如/swapfile1和/swapfile2),并将它们的路径都添加到/etc/fstab文件中。
7. 定期维护Swap空间
定期检查Swap文件是否有碎片化(尤其是长期使用的Swap文件),碎片化会增加磁盘I/O时间。解决方法:备份Swap文件(sudo cp /swapfile /swapfile.bak),删除原Swap文件(sudo rm /swapfile),重新创建并启用新的Swap文件(步骤同创建Swap文件),最后恢复数据(若有需要)。此外,定期清理不必要的临时文件和缓存(sudo apt clean、sudo journalctl --vacuum-size=100M)可减少内存占用,间接降低Swap使用率。