温馨提示×

Linux缓存文件在哪查看和管理

小樊
35
2025-11-30 04:40:41
栏目: 智能运维

Linux缓存查看与管理指南

一 内存中的缓存查看与释放

  • 查看概览
    • 使用 free 查看内存与缓存:free -h,关注 buff/cacheavailable 字段。
    • 查看内核详细统计:cat /proc/meminfo | grep -i cached(关注 CachedBuffers 等)。
    • 动态观察与定位: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 allsudo 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,必要时重启相关进程后再清理。

0