1. 调整Swappiness参数(关键优化项)
Swappiness是Linux内核控制物理内存向Swap空间换出频率的核心参数,取值范围0-100(默认60)。值越高,系统越早将内存数据移至Swap,导致磁盘I/O增加、性能下降;值越低,系统优先保留物理内存,仅在内存严重不足时使用Swap。
cat /proc/sys/vm/swappinesssudo sysctl vm.swappiness=10(建议设为10-30,平衡性能与内存利用率)/etc/sysctl.conf文件,添加vm.swappiness=10,然后运行sudo sysctl -p使配置生效。2. 使用SSD存储Swap文件(硬件级加速)
Swap文件的读写速度直接受存储介质影响。SSD的随机读写性能远优于传统HDD(约10倍以上),将Swap文件放在SSD上可显著降低延迟。
/swapfile);若未挂载SSD,需先分区、格式化并挂载至指定目录(如/mnt/ssd),再在该目录下创建Swap文件。3. 优化Swap文件大小(避免过大或过小)
Swap文件过小会导致内存不足时频繁触发Swap,过大会浪费磁盘空间且增加寻道时间。建议大小为物理内存的1.5-3倍(如4GB内存设为6-12GB),具体可根据应用场景调整:
fallocate或dd命令创建/修改Swap文件(如sudo fallocate -l 8G /swapfile),随后运行sudo mkswap /swapfile重新格式化,再用sudo swapon /swapfile启用。4. 使用zram压缩内存交换(无额外磁盘I/O)
zram是Linux内核的内存压缩模块,可将部分内存转换为压缩的Swap空间(无需占用物理磁盘)。相比传统Swap文件,zram减少了磁盘I/O,尤其适合SSD寿命有限或磁盘性能较差的场景。
sudo apt install zram-config,系统会自动生成并启用zram设备(如/dev/zram0),并将其配置为Swap空间。可通过lsblk查看zram设备,swapon --show确认启用状态。5. 监控Swap使用情况(及时调整策略)
通过监控工具实时了解Swap使用状态,避免过度依赖Swap导致性能瓶颈:
free -h(查看内存与Swap总量及使用量)、swapon --show(查看已启用的Swap设备及大小)、cat /proc/swaps(查看Swap详细信息);htop(可视化显示内存/Swap使用率,按F2进入设置开启Swap列)、iotop(监控Swap相关的磁盘I/O,需sudo apt install iotop)、vmstat -s | grep swap(查看Swap交换次数及页面换入换出量)。6. 使用多个Swap分区/文件(均衡I/O负载)
若系统有多个磁盘或分区,可创建多个Swap分区/文件(如/swapfile1、/swapfile2),系统会以轮询方式分配Swap请求,均衡各磁盘的I/O负载,提高整体Swap效率。
sudo fallocate -l 4G /swapfile1、sudo fallocate -l 4G /swapfile2),格式化(sudo mkswap /swapfile1)并启用(sudo swapon /swapfile1),然后在/etc/fstab中添加对应条目(如/swapfile1 none swap sw 0 0、/swapfile2 none swap sw 0 0)。