1. 调整Swappiness参数(关键优化项)
Swappiness是控制内核使用交换空间倾向的内核参数,默认值通常为60(表示当物理内存使用率达40%时开始使用交换空间)。降低该值可减少系统对交换空间的依赖,优先使用物理内存,从而提升响应速度。
sudo sysctl vm.swappiness=10
(将值设为10,适用于大多数桌面/服务器场景);/etc/sysctl.conf
文件,添加或修改vm.swappiness=10
,然后运行sudo sysctl -p
使更改生效。2. 优化Swap空间大小
Swap空间过大或过小都会影响性能:
sudo fallocate -l 4G /swapfile
(或用dd if=/dev/zero of=/swapfile bs=1M count=4096
);sudo chmod 600 /swapfile
(防止未授权访问);sudo mkswap /swapfile
;sudo swapon /swapfile
;/etc/fstab
,添加/swapfile none swap sw 0 0
。3. 使用高性能存储设备(SSD优先)
Swap操作的I/O速度直接影响系统响应。SSD的读写速度远快于传统机械硬盘(HDD),将Swap空间放在SSD上可显著减少延迟。若系统仍在使用HDD,建议升级至SSD以提升整体性能。
4. 监控Swap使用情况
定期监控Swap使用状态,及时发现异常(如Swap使用率长期过高),避免性能瓶颈:
free -h
命令查看Swap总大小、已用空间及剩余空间;swapon --showfree -h
命令获取更详细的Swap使用详情(如每个Swap设备的利用率);top
/htop
工具监控内存使用情况,判断是否因内存不足导致Swap频繁使用。5. 优化应用程序与内核参数
vm.vfs_cache_pressure
参数(控制内核回收文件系统缓存的倾向,默认值通常为100,设为50可减少缓存回收,提升文件访问速度)。编辑/etc/sysctl.conf
,添加vm.vfs_cache_pressure=50
,运行sudo sysctl -p
生效。6. 硬件升级(根本解决之道)
若系统频繁使用Swap且调整参数后效果有限,考虑升级硬件: