温馨提示×

ubuntu swap如何提升速度

小樊
37
2025-11-10 19:30:22
栏目: 智能运维

1. 选择高速存储设备
Swap的性能直接受存储介质影响,**优先使用SSD(尤其是NVMe SSD)**作为Swap载体。NVMe SSD的超低延迟(约100μs级)和高吞吐量(可达数千MB/s),能显著减少Swap读写延迟,相比传统HDD(延迟约5-10ms),性能提升可达数十倍。若系统已使用SSD,确保Swap文件或分区位于SSD而非HDD上。

2. 调整Swappiness内核参数
Swappiness(范围0-100)控制内核使用Swap的积极性:默认值60表示系统会在物理内存剩余40%时开始使用Swap;值越低,系统越倾向于保留内存中的数据,减少Swap依赖。建议设置为10-30(桌面环境可保留默认60,服务器建议10),以平衡内存利用率和Swap使用频率。操作步骤:

  • 临时修改:sudo sysctl vm.swappiness=10(立即生效,重启失效);
  • 永久修改:编辑/etc/sysctl.conf,添加vm.swappiness=10,保存后运行sudo sysctl -p生效。

3. 使用Swap文件替代传统分区(现代系统推荐)
传统Swap分区大小固定,调整麻烦;Swap文件可动态扩容(无需重新分区),灵活性更高。创建步骤:

  • 创建Swap文件(如4GB):sudo fallocate -l 4G /swapfile(若fallocate不可用,用sudo dd if=/dev/zero of=/swapfile bs=1M count=4096);
  • 设置权限(仅root可访问):sudo chmod 600 /swapfile
  • 格式化为Swap:sudo mkswap /swapfile
  • 启用Swap:sudo swapon /swapfile
  • 永久生效:将/swapfile none swap sw 0 0添加到/etc/fstab
    Swap文件的性能略低于Swap分区(受文件系统开销影响),但足以满足大多数场景需求。

4. 启用Zswap内存压缩(Linux内核4.0+)
Zswap是内核内置的内存压缩技术,在内存不足时,先将内存页压缩(使用LZ4等算法,压缩率约30%-50%),仅将无法压缩的数据写入Swap。效果:减少Swap I/O次数(约50%以上),提升系统响应速度。启用步骤:

  • 编辑GRUB配置(sudo nano /etc/default/grub),在GRUB_CMDLINE_LINUX中添加zswap.enabled=1 zswap.compressor=lz4
  • 更新GRUB并重启:sudo update-grub && sudo reboot

5. 合理设置Swap大小
Swap大小需根据物理内存调整,避免过大或过小:

  • 物理内存≤2GB:Swap设为内存的2倍(如2GB内存配4GB Swap);
  • 2GB<物理内存≤8GB:Swap等于内存大小(如4GB内存配4GB Swap);
  • 物理内存>8GB:Swap设为4-8GB(大内存系统仅需少量Swap应急);
  • 服务器(>64GB内存):可禁用Swap(或设为1-4GB),依赖OOM Killer管理内存溢出。
    调整方法:若当前Swap大小不合适,可禁用旧Swap(sudo swapoff /swapfile),再按上述规则创建新Swap文件并启用。

6. 定期监控Swap使用情况
通过监控工具及时发现Swap异常(如Swap使用率长期超过50%),避免性能瓶颈。常用命令:

  • free -h:查看内存和Swap的总大小、已用空间及使用率;
  • swapon --show:查看当前活跃的Swap设备及大小;
  • vmstat 1:实时监控系统状态,关注si(Swap In,每秒从Swap读取到内存的数据量)和so(Swap Out,每秒从内存写入Swap的数据量),若si/so持续大于0,说明Swap使用频繁。

0