Linux系统中的缓存是为了提升系统性能而设计的,通过将频繁访问的数据暂存到内存中,减少磁盘I/O操作,从而加快程序响应速度,但长时间运行后,缓存文件可能会占用大量磁盘空间,导致系统变慢或存储不足,此时需要手动清除缓存,清除缓存需区分系统级缓存和应用级缓存,不同类型缓存的清除方式有所不同,操作时需注意权限和数据安全。

系统级缓存清除
系统级缓存主要包括页面缓存(Page Cache)、目录项缓存(dentries)和 inode 缓存,这些缓存由内核管理,用于加速文件访问,清除系统缓存需使用root权限,操作前建议先执行sync命令,将缓冲区数据写入磁盘,避免数据丢失。
查看当前缓存占用
执行free -h命令,可查看内存使用情况,buff/cache”列即为系统缓存占用的内存大小。
total used free shared buff/cache available Mem: 7.7Gi 2.1Gi 4.2Gi 1.0Mi 1.4Gi 5.3Gi Swap: 2.0Gi 0B 2.0Gi
“buff/cache”显示1.4Gi,即缓存占用约1.4GB。
清除页面缓存和目录项缓存
页面缓存用于缓存文件数据,目录项缓存用于缓存文件元数据(如文件名、位置等),通过向/proc/sys/vm/drop_caches写入不同值可清除不同缓存:

- 清除页面缓存:
echo 1 > /proc/sys/vm/drop_caches - 清除目录项缓存和 inode 缓存:
echo 2 > /proc/sys/vm/drop_caches - 清除所有缓存(页面+目录项+inode):
echo 3 > /proc/sys/vm/drop_caches
操作示例:
sync # 同步数据到磁盘 echo 3 > /proc/sys/vm/drop_caches # 清除所有系统缓存 free -h # 再次查看缓存占用,确认已减少
注意:/proc/sys/vm/drop_caches是临时接口,清除后系统会重新建立缓存,不会影响已保存的文件数据,但正在运行的程序可能会短暂变慢(因需重新加载数据到缓存)。
应用级缓存清除
除了系统缓存,各类应用程序(如浏览器、包管理器、开发工具等)也会在本地生成缓存文件,长期积累会占用磁盘空间,不同应用的缓存路径和清除方式不同,以下为常见应用缓存的清理方法:
常见应用缓存清除汇总
| 应用类型 | 缓存路径 | 清除命令 |
|---|---|---|
| APT(Debian/Ubuntu) | /var/cache/apt/archives/ | sudo apt-get clean 或 sudo apt clean |
| YUM/DNF(RHEL/CentOS) | /var/cache/yum/ 或 /var/cache/dnf/ | sudo yum clean all 或 sudo dnf clean all |
| Chrome 浏览器 | ~/.cache/google-chrome/ | rm -rf ~/.cache/google-chrome/ |
| Firefox 浏览器 | ~/.cache/mozilla/firefox/ | rm -rf ~/.cache/mozilla/firefox/ |
| Python pip | ~/.cache/pip/ | pip cache purge(需pip≥20.1) |
| Node.js npm | ~/.npm 或 /tmp/npm-* | npm cache clean --force |
| 临时文件 | /tmp/ | sudo rm -rf /tmp/*(谨慎操作,确保无运行程序依赖) |
操作示例
- 清理APT缓存:APT缓存存放已下载的软件包,清理可释放磁盘空间:
sudo apt-get clean # 清除已下载的软件包.deb文件 sudo apt autoremove -y # 清除不再使用的依赖包(可选)
- 清理Chrome缓存:Chrome缓存存储网页资源、Cookie等,清理后需重新登录网站:
rm -rf ~/.cache/google-chrome/ # 强制删除Chrome缓存目录
- 清理pip缓存:pip缓存存放已下载的Python包,可通过命令清理:
pip cache purge # 清理pip缓存(推荐)或手动删除目录:rm -rf ~/.cache/pip/
注意事项
- 权限问题:清除系统缓存和应用缓存均需root权限(使用
sudo),普通用户无法操作。 - 数据备份:若缓存中包含重要数据(如浏览器书签、应用配置),建议清除前备份,避免误删。
- 定期清理:可通过
crontab设置定时任务,定期清理缓存(如每周日凌晨3点执行apt clean和rm -rf /tmp/*)。 - 调整缓存策略:若系统内存充足,可适当调整
vm.swappiness参数(默认60),降低swap使用频率,提升缓存效率:sudo sysctl vm.swappiness=10 # 临时调整,重启后失效 echo "vm.swappiness=10" | sudo tee -a /etc/sysctl.conf # 永久生效
相关问答FAQs
Q1:清除Linux缓存会丢失重要数据吗?
A:不会丢失已保存的文件数据,系统缓存(如页面缓存)是内存中的临时数据,清除前已通过sync写入磁盘;应用缓存中,除浏览器Cookie、会话信息等需重新登录外,用户文件(如文档、图片)不受影响,但建议清理前确认缓存中无重要数据,避免误删。

Q2:为什么清除缓存后系统运行变快,但过一会儿又变慢?
A:清除缓存后,系统释放了内存和磁盘空间,程序首次启动时无需从磁盘读取数据,因此暂时变快;但随着程序运行,系统会重新将常用数据加载到缓存中(页面缓存、目录项缓存等),以提升后续访问速度,因此缓存会逐渐占用资源,这是Linux的正常缓存机制,目的是平衡性能与资源占用,无需频繁手动清除系统缓存,仅在磁盘空间不足时清理即可。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/26493.html