在 Linux 里经常会听到各种“缓存(cache)”,但它们所处层级、作用、是否可释放差别很大。下面按常见分类系统说明。
位置:内存(RAM)
作用:缓存文件系统的文件内容(磁盘 → 内存)
特点:
查看方式:
free -h
# buffers/cache 或 buff/cache
特点总结:
✅ 提升 IO 性能
✅ 不丢数据(最终会写盘)
✅ 可回收
位置:内存
作用:缓存“块设备”的原始块(如磁盘扇区)
现代 Linux 中:
free 里看到的 buffers 多是元数据(inode、目录等)位置:CPU 内部
作用:缓存内存数据,加速 CPU 访问
特点:
查看:
lscpu | grep -i cache
位置:硬盘 / SSD 控制芯片
作用:硬盘内部读写缓冲
风险:
fsync / barrier 控制位置:用户进程内存
作用:业务级缓存
特点:
位置:内核内存
作用:缓存目录项和 inode
效果:
ls 快stat 快查看:
slabtop
| 类型 | 位置 | 是否可回收 | 是否丢数据 | 管理方 |
|---|---|---|---|---|
| Page Cache | 内存 | ✅ | ❌ | 内核 |
| Buffer Cache | 内存 | ✅ | ❌ | 内核 |
| CPU Cache | CPU | ❌ | ❌ | 硬件 |
| Disk Cache | 硬盘 | ❌ | ⚠️ | 硬件 |
| 应用缓存 | 进程 | ❌ | ❌ | 应用 |
| dentry/inode | 内核 | ✅ | ❌ | 内核 |
如果你是想问:
可以告诉我具体场景,我可以针对性讲。