温馨提示×

ubuntu缓存效率提升

小樊
41
2025-10-03 10:47:37
栏目: 智能运维

一、清理系统缓存文件
定期清理软件包缓存、临时文件及旧内核,释放磁盘空间和内存占用。

  • 清理APT缓存:使用sudo apt-get clean删除所有已下载的软件包文件;sudo apt-get autoclean删除已安装软件包的旧版本;sudo apt autoremove移除不再需要的库文件和旧内核。
  • 清理临时文件:通过sudo rm -rf /tmp/*清除/tmp目录下的临时文件(系统重启后会自动重建)。
  • 清理系统日志:使用sudo journalctl --vacuum-size=100M将系统日志限制在100MB以内,避免日志文件过大占用缓存。

二、调整内核缓存参数
优化内核参数,平衡内存使用与缓存效率。

  • 调整Swappiness值vm.swappiness参数控制系统使用交换分区的倾向(默认60)。降低该值(如10-30)可减少对交换空间的依赖,提升内存使用效率。临时调整:sudo sysctl vm.swappiness=10;永久生效:编辑/etc/sysctl.conf文件,添加vm.swappiness=10
  • 控制脏页面写入vm.dirty_background_ratio(默认10%,后台写入阈值)和vm.dirty_ratio(默认20%,强制写入阈值)可根据工作负载调整。例如,将dirty_background_ratio设为5%、dirty_ratio设为10%,可加快脏页面写入速度,减少内存缓存占用。

三、使用编译缓存工具
加速代码编译过程,减少重复编译时间。

  • ccache:安装sudo apt-get install ccache,通过CC=ccache gcc命令启用,缓存编译结果以避免重复编译相同代码。
  • sccache:性能优于ccache的工具,安装sudo apt-get install sccache,同样通过CC=sccache gcc启用,支持分布式缓存(适用于团队协作)。

四、配置应用层缓存
针对特定服务设置缓存,提升应用响应速度。

  • Memcached:安装sudo apt-get install memcached,编辑/etc/memcached.conf设置缓存大小(如-m 1024表示1GB),重启服务sudo systemctl restart memcached,用于缓存数据库查询、API响应等数据。
  • Redis:安装sudo apt-get install redis-server,编辑redis.conf设置最大内存(maxmemory)和持久化选项(如appendonly yes),适用于高频访问数据的缓存(如会话、热点数据)。
  • DNS缓存:安装dnsmasqsudo apt-get install dnsmasq),编辑配置文件设置cache-mem 512(512MB DNS缓存),重启服务sudo systemctl restart dnsmasq,减少DNS查询时间。

五、优化文件系统缓存
通过挂载选项和工具,提升文件系统缓存效率。

  • 挂载选项优化:若使用SSD,挂载时添加noatime选项(不更新文件访问时间),减少磁盘写入。例如,在/etc/fstab中修改挂载行:UUID=xxxx / ext4 defaults,noatime 0 1
  • 磁盘碎片整理:针对ext4文件系统,使用e4defrag工具整理碎片(sudo apt install e4defragsudo e4defrag /dev/sdaX,替换为实际分区),提升文件读取速度。

六、定时自动化清理
通过脚本和定时任务,定期执行缓存清理操作,保持系统缓存效率。

  • 编写清理脚本:创建clear_caches.sh,内容如下:
    #!/bin/bash
    sync
    echo 3 | sudo tee /proc/sys/vm/drop_caches
    sudo apt-get clean
    sudo apt-get autoclean
    sudo apt-get autoremove -y
    
  • 设置定时任务:运行crontab -e,添加0 2 * * * /path/to/clear_caches.sh,表示每天凌晨2点自动执行清理脚本。

0