Ubuntu缓存与磁盘空间有何关系
小樊
36
2025-12-14 04:32:15
Ubuntu 缓存与磁盘空间的关系
一、核心概念与分类
- 内存中的缓存:Linux 内核会把访问过的文件内容放入Page Cache,把目录与文件元数据放入dentry/inode Cache,用于加速读写。这些缓存位于内存中,不直接占用磁盘空间;当内存紧张时会被回收,必要时通过sync将“脏页”写回磁盘。它们与磁盘空间的关系是“用内存换 I/O 次数”,从而间接影响磁盘负载与可用空间(例如减少写入放大、降低碎片)。
- 磁盘上的缓存:指各种应用与系统组件把下载或临时数据写到磁盘的目录,典型如 APT 包缓存 /var/cache/apt/archives、缩略图缓存 ~/.cache/thumbnails、浏览器缓存、以及日志文件 journal。这些缓存直接占用磁盘空间,通常可安全清理,清理后只是下次访问需要重新下载或重建。
二、对可用磁盘空间的影响
- 可清理的磁盘缓存会直接“吃”空间:APT 缓存、缩略图、浏览器缓存、旧日志等,时间一久可达数百 MB 到数 GB。例如 APT 缓存位于**/var/cache/apt/archives**,可用
du -sh /var/cache/apt/archives 查看;日志占用可用 journalctl --disk-usage 查看。清理它们能立刻增加“可用空间”。
- 清理方式与影响一览:
- APT 缓存:用
sudo apt clean(清空全部)或 sudo apt autoclean(仅删过时包);仅影响下载好的 .deb 包,已装软件不受影响,重装时需重新下载。
- 系统日志:用
sudo journalctl --vacuum-time=2d 或 --vacuum-size=500M 限制保留时长或大小,释放 /var/log/journal 占用。
- 缩略图与浏览器缓存:删除对应缓存目录内容(如
~/.cache/thumbnails/*),下次生成会略增 I/O 与首次访问时间。
三、对磁盘 I/O 与性能的影响
- 内存缓存(Page Cache/dentry/inode)通过“命中缓存”减少实际磁盘读写,显著提升读性能、合并随机写,降低 I/O 压力;这是 Linux 提升磁盘访问性能的核心机制。
- 磁盘缓存(APT/缩略图/日志等)则是“以空间换时间”:它们把常用或临时数据放在磁盘上,减少重复下载/生成,从而也降低了磁盘读写与网络消耗。
- 风险与权衡:写缓存采用延迟刷盘,异常断电可能丢失未落盘数据;当内存紧张时,内核会频繁回收缓存并触发更多磁盘 I/O,表现为 I/O 抖动。高可靠场景(数据库、金融)可适当调优刷盘策略(如更积极的同步/回写)。
四、查看与清理的实用命令
- 查看与清理 APT 缓存
- 查看:
du -sh /var/cache/apt/archives
- 清理:
sudo apt clean(全清)或 sudo apt autoclean(删过时包)
- 查看与清理日志占用
- 查看:
journalctl --disk-usage
- 清理:
sudo journalctl --vacuum-time=2d 或 --vacuum-size=500M
- 查看与清理缩略图缓存
- 查看:
du -sh ~/.cache/thumbnails
- 清理:
rm -rf ~/.cache/thumbnails/*
- 谨慎操作提示
- 清理 APT 缓存、缩略图、日志等通常安全;但不要手动粗暴删除 /var/cache/apt 下的锁文件或目录结构,建议使用
apt clean/autoclean 等专用命令。
- 若需释放“内存中的缓存”(Page Cache/dentry/inode),可在确保数据安全前提下执行:
sync && echo 3 > /proc/sys/vm/drop_caches;这只是临时手段,且可能带来短时性能下降,不建议频繁使用。