Ubuntu缓存优化策略
APT缓存会占用大量磁盘空间,定期清理可释放资源。使用以下命令:
sudo apt-get clean:删除所有已下载的软件包文件(位于/var/cache/apt/archives);sudo apt-get autoclean:删除旧版本的软件包缓存(仅保留当前版本);sudo apt-get autoremove:删除不再被任何已安装软件依赖的孤立包。旧内核文件会占用/boot分区空间,导致无法升级内核或系统卡顿。操作步骤:
df -h检查/boot分区使用率(若超过80%,需清理);sudo apt-get purge linux-image-<version>和sudo apt-get purge linux-headers-<version>删除旧内核(保留当前正在使用的版本,可通过uname -r查看)。编译大型项目时,缓存可显著提升速度:
sudo apt-get install ccache,通过export PATH="/usr/lib/ccache:$PATH"配置环境变量,后续编译会自动缓存结果;sudo apt-get install sccache,同样配置环境变量即可。sudo apt-get install memcached,编辑/etc/memcached.conf设置缓存大小(如-m 1024表示1GB),重启服务sudo systemctl restart memcached;sudo apt-get install dnsmasq,编辑配置文件(如/etc/dnsmasq.conf)设置cache-size=1000(缓存条目数)和cache-mem=512(缓存内存,单位MB),重启服务sudo systemctl restart dnsmasq。Linux会自动利用空闲内存作为缓存(PageCache、dentries、inodes),但可手动清理以释放内存(非破坏性操作,不会影响正在运行的程序):
sudo sync;echo 1 | sudo tee /proc/sys/vm/drop_caches;echo 2 | sudo tee /proc/sys/vm/drop_caches;echo 3 | sudo tee /proc/sys/vm/drop_caches。vm.swappiness控制系统使用交换分区(swap)的倾向(默认值60,范围0-100):
sudo sysctl -w vm.swappiness=10;/etc/sysctl.conf,添加vm.swappiness=10。noop(无调度,发挥SSD并行优势),机械硬盘使用deadline(低延迟);修改方法:echo noop | sudo tee /sys/block/sda/queue/scheduler(sda为设备名);vm.dirty_background_ratio(后台写入阈值,默认10%)和vm.dirty_ratio(强制写入阈值,默认20%)控制,降低值可减少写入延迟(如设置为5和10),编辑/etc/sysctl.conf永久生效。将频繁访问的目录(如/tmp)挂载到SSD,提升读写速度:
/etc/tmpfiles.d/tmp.conf文件,添加内容:D /tmp 1777 root root 10d(设置/tmp目录的挂载选项,10天清理一次);/tmp挂载到SSD分区(需修改/etc/fstab)。定期监控缓存状态,及时调整策略:
free -m:查看内存和缓存使用概况;top/htop:查看进程级内存和缓存占用;vmstat 1:实时查看系统缓存、swap、I/O等指标;sudo slabtop:查看内核slab缓存(如dentries、inodes)的使用情况。通过脚本和定时任务(cron)自动清理,避免手动操作:
/usr/local/bin/clean_cache.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
sudo chmod +x /usr/local/bin/clean_cache.sh;sudo crontab -e,添加0 3 * * * /usr/local/bin/clean_cache.sh。