在Linux系统中,缓存文件是提升系统性能的关键,它们存储了频繁访问的数据,减少磁盘I/O操作,查看缓存文件有助于理解内存使用情况、排查性能问题或清理冗余数据,以下是Linux中查看不同类型缓存文件的详细方法。

系统级缓存查看(内核与内存缓存)
Linux内核将空闲内存用作缓存,主要包括Page Cache(文件缓存)、Buffer Cache(块设备缓存)和Slab Cache(内核对象缓存),可通过以下命令查看:
free命令:快速查看内存与缓存占用
free -h
输出示例中,buff/cache列即为系统缓存占用的内存(包含Buffer和Cache),available列是可用的内存(已扣除缓存可回收部分)。
/proc/meminfo:详细内存与缓存信息
cat /proc/meminfo | grep -E "(Cached|Buffers|Slab|PageTables)"
关键字段说明:
Cached:Page Cache,用于缓存文件数据;Buffers:块设备缓存,如磁盘块读写缓冲;Slab:内核数据结构缓存(如inode、dentry);PageTables:内存页表缓存。
vmstat:监控内存与缓存动态
vmstat -s
输出中“cache memory”即Page Cache大小,“buffer memory”即Buffer大小。

slabtop:查看Slab Cache详情
slabtop -o
按-o按内存使用排序,显示内核对象(如inode、dentry)的缓存占用。
系统缓存命令对比表
| 命令 | 作用 | 关键输出字段 |
|---|---|---|
free -h |
快速查看内存与缓存总量 | buff/cache、available |
/proc/meminfo |
详细内存与缓存参数 | Cached、Buffers、Slab |
vmstat -s |
内存使用统计(含缓存动态) | cache memory、buffer memory |
slabtop |
内核对象缓存详情 OBJS(ROW)、OBJ SIZE(KB) |
应用级缓存查看
包管理器缓存(APT/YUM/DNF)
- APT(Debian/Ubuntu):缓存路径
/var/cache/apt/archives/,查看占用:du -sh /var/cache/apt/archives/
- YUM/DNF(CentOS/RHEL):缓存路径
/var/cache/yum/或/var/cache/dnf/,查看大小:du -sh /var/cache/{yum,dnf}/*/
浏览器缓存
- Chrome/Chromium:缓存路径
~/.cache/google-chrome/Default/Cache/,查看:du -sh ~/.cache/google-chrome/Default/Cache/
- Firefox:缓存路径
~/.cache/mozilla/firefox/,按进程名查找:find ~/.cache/mozilla/firefox/ -name "*.cache" -exec du -sh {} ;
容器与虚拟机缓存
- Docker:镜像/容器缓存路径
/var/lib/docker/,查看镜像缓存:du -sh /var/lib/docker/image/overlay2/imagedb/content/sha256/
- 虚拟机(KVM/QEMU):磁盘缓存路径
/var/lib/libvirt/images/,查看:du -sh /var/lib/libvirt/images/*.qcow2
通用用户缓存
多数应用遵循XDG规范,缓存存放在~/.cache/,
du -sh ~/.cache/* | sort -hr | head -n 10 # 按大小排序显示Top10缓存目录
通用缓存查找技巧
若需查找特定类型的缓存文件,可结合find命令按扩展名或大小筛选:
- 查找大于100MB的缓存文件:
find /path/to/cache -type f -size +100M
- 查找
.cache扩展名的文件:find / -name "*.cache" 2>/dev/null
- 使用
ncdu(交互式磁盘使用分析工具)可视化缓存目录:ncdu /var/cache # 需安装ncdu(apt install ncdu/yum install ncdu)
相关问答FAQs
Q1: 如何清理Linux系统缓存以释放内存?
A1: 可通过以下命令清理(注意:echo 3 > /proc/sys/vm/drop_caches需root权限,且会临时降低性能):

- 清理Page Cache(文件缓存):
sync && echo 1 > /proc/sys/vm/drop_caches - 清理Buffer Cache(块设备缓存):
sync && echo 2 > /proc/sys/vm/drop_caches - 清理所有缓存(慎用):
sync && echo 3 > /proc/sys/vm/drop_caches
应用缓存(如浏览器、Docker)需手动删除对应目录(如rm -rf ~/.cache/firefox/)。
Q2: 为什么Linux系统内存占用很高,但实际可用内存却很少?
A2: Linux内核会将空闲内存用作Page Cache和Buffer Cache,以提升后续读写性能(从缓存读取远快于磁盘),此时内存并非“占用”,而是“预缓存”,可通过free -h中的available列查看真正可用的内存(包含可回收的缓存),若available值较低,才需排查是否有进程异常占用内存。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/24489.html