Linux缓存文件在哪查看和管理
小樊
35
2025-11-30 04:40:41
Linux缓存查看与管理指南
一 内存中的缓存查看与释放
- 查看概览
- 使用 free 查看内存与缓存:free -h,关注 buff/cache 与 available 字段。
- 查看内核详细统计:cat /proc/meminfo | grep -i cached(关注 Cached、Buffers 等)。
- 动态观察与定位:top/htop(按内存排序)与 vmstat -s(内存与换页概况)。
- 释放内存缓存(仅在必要时)
- 先同步脏页到磁盘:sync
- 写入 drop_caches(需 root):
- 仅页缓存:echo 1 > /proc/sys/vm/drop_caches
- 仅目录项与 inode:echo 2 > /proc/sys/vm/drop_caches
- 全部:echo 3 > /proc/sys/vm/drop_caches
- 说明:这些缓存位于内核内存,没有固定“文件路径”;通常无需手动清理,系统会在需要时自动回收。必要时可结合 /proc/sys/vm/swappiness 调整换页倾向(默认一般为60,数值越大越倾向使用交换分区)。
二 磁盘上的缓存与临时文件位置
- 用户级应用缓存:集中在 ~/.cache/(如浏览器、pip、conda、huggingface 等)。
- 系统临时文件:/tmp(重启后常被清理)与 /var/tmp(保留时间更长)。
- 包管理器缓存:
- Debian/Ubuntu:/var/cache/apt/archives/
- RHEL/CentOS/Fedora:/var/cache/yum/ 或 /var/cache/dnf/
- Arch:/var/cache/pacman/pkg/
- 浏览器缓存示例:Chrome 位于 ~/.config/google-chrome/Default/Cache
- 动态库链接缓存:/etc/ld.so.cache(由 ldconfig 维护,可用 ldconfig -p 查看缓存内容)。
三 安全清理与释放磁盘空间
- 包管理器缓存
- APT:sudo apt-get clean(清空所有包缓存)、sudo apt-get autoclean(清理过期包)、sudo apt-get autoremove(移除无用依赖)
- YUM/DNF:sudo yum clean all、sudo dnf clean all
- Pacman:sudo pacman -Sc(清理未使用缓存)、sudo pacman -Scc(清理全部缓存,谨慎)
- 临时文件与系统日志
- 临时文件:sudo rm -rf /tmp/;sudo rm -rf /var/tmp/(生产环境建议配合 systemd-tmpfiles 策略)
- 日志:sudo journalctl --vacuum-time=7d(保留最近 7 天)
- 用户与应用缓存
- 清理用户缓存目录:rm -rf ~/.cache/*(谨慎,先确认)
- 浏览器缓存:按需删除对应应用缓存目录(如 Chrome 示例路径)
- 大文件定位与清理
- 使用 ncdu 分析占用:sudo ncdu /(交互式定位大目录/文件,再决定清理策略)。
四 变更默认缓存目录与常用环境变量
- 将占用大的缓存迁移到大盘(示例迁移到 /data/username)
- 设置环境变量(写入 ~/.bashrc 或系统 profile 并 source 生效):
- export HF_HOME=“/data/username/huggingface”
- export MODELSCOPE_CACHE=“/data/username/modelscope”
- export TORCH_HOME=“/data/username/torch”
- export PIP_CACHE_DIR=“/data/username/pip”
- Conda 配置(写入 ~/.condarc):
- envs_dirs 与 pkgs_dirs 将目标路径置于前列,如:/data/username/conda/envs、/data/username/conda/pkgs
- 生效后可将原 ~/.cache 下对应目录的内容迁移或删除,以释放系统盘空间。
五 实用建议与注意事项
- 内存缓存(page cache、dentries、inodes)是内核为提升性能而使用的可回收资源,通常无需手动清理;只有在特殊场景(如基准测试、内存紧张排查)下才使用 drop_caches。
- 清理前务必备份重要数据;对 /var、/etc、/usr 等系统目录谨慎操作。
- 优先使用发行版提供的清理工具与策略(如 apt/yum/dnf/pacman 的清理命令、journalctl 日志轮转与清理),避免误删正在使用的文件。
- 若遇到 “No space left on device”,先排查大文件与已删除但仍被进程占用的文件:lsof | grep deleted,必要时重启相关进程后再清理。