1. 调整Swap大小
合理设置Swap空间是基础。一般建议Swap大小为物理内存的1.5-3倍(如4GB内存建议6-12GB),但需根据实际使用场景调整:若物理内存充足(如32GB以上),可适当减小Swap大小甚至禁用(需评估应用内存需求)。创建或扩展Swap时,推荐使用Swap文件(灵活性更高):通过fallocate命令创建(如sudo fallocate -l 4G /swapfile),设置权限为600(sudo chmod 600 /swapfile),格式化为Swap(sudo mkswap /swapfile),启用(sudo swapon /swapfile),并添加到/etc/fstab实现开机自启(添加/swapfile none swap sw 0 0行)。
2. 优化Swappiness参数
vm.swappiness是控制内核将内存数据换出到Swap的倾向参数,取值范围0-100(0表示尽量不用Swap,100表示积极使用)。默认值通常为60,对于桌面或内存充足的服务器,建议降低至10-30(减少磁盘I/O,提升响应速度)。临时修改用sysctl命令(sudo sysctl vm.swappiness=10),永久生效则编辑/etc/sysctl.conf文件(添加vm.swappiness=10),然后运行sudo sysctl -p使配置生效。
3. 使用高性能存储介质
Swap的性能高度依赖存储设备。优先将Swap放在SSD上(而非HDD),因为SSD的随机读写速度远高于HDD,能显著减少Swap操作的延迟。若系统已有SSD,确保Swap文件或分区位于SSD设备上(如/dev/sda1而非/dev/sdb1)。
4. 利用zRAM/zswap减少磁盘IO
sudo apt update && sudo apt install zram-config,启用后会自动创建zRAM设备并添加为Swap。/etc/default/grub,添加zswap.enabled=1 zswap.compressor=lz4 zswap.max_pool_percent=20,更新GRUB后重启)。5. 使用多个Swap分区/文件均衡负载
多个Swap分区或文件可均衡磁盘I/O负载,提高交换效率。系统会以轮询方式使用多个Swap空间,避免单一设备成为瓶颈。配置方法:创建多个Swap文件(如/swapfile1、/swapfile2),分别格式化、启用并添加到/etc/fstab;或创建多个Swap分区(如/dev/sda2、/dev/sdb3),格式化后逐一启用并添加到/etc/fstab。
6. 定期监控Swap使用情况
通过监控工具及时发现Swap异常(如频繁换出),有助于提前优化。常用命令:
free -h:查看内存和Swap的总使用量及剩余量;swapon --show:查看当前启用的Swap设备及使用率;top/htop:查看进程的内存和Swap占用情况(按Shift+M按内存排序,找出内存消耗大的进程)。7. 清理不必要的Swap文件/分区
定期检查并移除不再使用的Swap文件或分区,释放磁盘空间并减少系统管理开销。操作步骤:
sudo swapoff /swapfile或sudo swapoff /dev/sdXN);/etc/fstab中移除对应条目;sudo rm /swapfile)或分区(使用gparted等工具删除分区)。