Ubuntu系统缓存管理与回收指南
在Ubuntu系统中,缓存是提升性能的关键机制(如内存缓存加速文件访问、APT缓存简化软件重装),但随着时间推移,缓存文件(尤其是日志、临时文件、旧内核)可能占用大量磁盘空间。以下是分类管理与回收的具体方法:
内存缓存(Buffers/Cached)是内核为提升IO性能预留的物理内存,无需手动频繁清理,但在磁盘空间紧张时可手动释放:
free -m命令查看内存使用情况,其中“Cached”列表示文件缓存大小,“Buffers”列表示文件元数据缓存(如目录项、索引节点)。sudo sync && echo 1 | sudo tee /proc/sys/vm/drop_caches # 清理页面缓存(PageCache)
sudo sync && echo 2 | sudo tee /proc/sys/vm/drop_caches # 清理dentries(目录项)和inodes(索引节点)
sudo sync && echo 3 | sudo tee /proc/sys/vm/drop_caches # 清理所有缓存(页面+slab对象)
注:sync命令用于将内存中的数据同步到磁盘,避免数据丢失;清理后系统会重新加载常用缓存,短期可能有轻微性能下降。APT(Advanced Package Tool)缓存用于存储下载的软件包(.deb文件),定期清理可释放/var/cache/apt/archives/目录空间:
sudo du -sh /var/cache/apt/archives
sudo apt autoclean
/var/cache/apt/archives/目录下所有软件包文件(包括最新版本,慎用):sudo apt clean
sudo apt autoremove # 仅删除依赖包
sudo apt autoremove --purge # 删除依赖包及配置文件
系统日志(如/var/log/journal/、/var/log/syslog)会随时间增长占用大量空间,需定期清理:
journalctl --disk-usage # 查看journal日志占用空间
du -sh /var/log/* # 查看/var/log目录下各日志文件大小
sudo journalctl --vacuum-time=1w
sudo journalctl --vacuum-size=500M
sudo find /var/log -name "*.log" -exec gzip {} \;
sudo find /var/log -type f -name "*.log.*" -mtime +30 -delete
Ubuntu会为图片、视频生成缩略图(存储在~/.cache/thumbnails/目录),长期积累会占用用户目录空间:
rm -rf ~/.cache/thumbnails/* # 删除所有缩略图缓存(不影响原文件)
系统升级时会保留旧版本内核(位于/boot分区),过多旧内核会导致分区空间不足:
dpkg --list | grep linux-image # 列出所有已安装的内核
uname -r # 查看当前正在使用的内核
linux-image-5.15.0-30-generic,替换为实际版本号):sudo apt remove --purge linux-image-5.15.0-30-generic
更新GRUB引导配置:sudo update-grub
sudo add-apt-repository ppa:gerardpuig/ppa
sudo apt update
sudo apt install ubuntu-cleaner
启动后选择对应项目即可清理。sudo apt install bleachbit
以管理员权限运行,选择“缓存”“临时文件”等项目清理。/var/cache/apt/archives/等目录中的重要文件(如自定义编译的软件包)。通过以上方法,可有效管理Ubuntu系统缓存,释放磁盘空间,提升系统性能。