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查看)。编译大型项目时,缓存可显著提升编译速度:
CC="ccache gcc"命令启用;内存缓存可将频繁访问的数据存储在内存中,减少磁盘IO:
/etc/memcached.conf,设置缓存大小(如-m 1024表示1GB),重启服务生效;cache-mem 512设置缓存大小为512MB),重启服务即可。Linux内核会自动管理内存缓存(PageCache、dentries、inodes),但可手动清理以释放内存(不影响正在运行的程序):
sudo sync && echo 1 | sudo tee /proc/sys/vm/drop_caches;sudo sync && echo 2 | sudo tee /proc/sys/vm/drop_caches;sudo sync && echo 3 | sudo tee /proc/sys/vm/drop_caches(sync命令用于将缓存数据写入磁盘,避免数据丢失)。vm.swappiness参数控制系统使用交换分区(swap)的倾向(默认值60,范围0-100):
sudo sysctl -w vm.swappiness=10;/etc/sysctl.conf,添加vm.swappiness=10。文件系统缓存(如页缓存、目录缓存)的性能直接影响IO效率:
vm.dirty_background_ratio(后台写入阈值,默认10%)和vm.dirty_ratio(强制写入阈值,默认20%)控制,降低这两个值可减少大文件写入时的延迟(如sudo sysctl -w vm.dirty_background_ratio=5);noop(无调度)或deadline(低延迟)调度器(通过cat /sys/block/sda/queue/scheduler查看当前调度器,修改/etc/default/grub中的GRUB_CMDLINE_LINUX参数并更新grub)。SSD的高速IO特性可用于加速热点数据的访问:
/tmp目录挂载到SSD:编辑/etc/tmpfiles.d/tmp.conf,添加D /tmp 1777 root root(确保/tmp为临时文件目录),重启系统后/tmp下的文件将存储在SSD上;bcache或flashcache等工具将SSD作为机械硬盘的缓存(适合机械硬盘为主的系统)。通过定时任务(cron)定期清理缓存,避免手动操作:
/usr/local/bin/cleancache.sh),内容为#!/bin/bash\nsync && echo 3 > /proc/sys/vm/drop_caches;chmod +x /usr/local/bin/cleancache.sh;crontab -e),添加0 */3 * * * /usr/local/bin/cleancache.sh(每3小时清理一次)。定期监控缓存状态,及时发现异常:
free -m查看内存和缓存使用情况(重点关注buff/cache列);top/htop查看进程缓存占用(按M键按内存排序);vmstat 1查看系统级缓存指标(如cache表示PageCache大小,buff表示缓冲区大小)。