温馨提示×

linux缓存包括哪些

小樊
37
2026-10-12 09:27:26
栏目: 智能运维

在 Linux 系统中,“缓存”是一个比较宽泛的概念,通常可以从内存缓存、文件系统缓存、CPU/硬件缓存、应用层缓存等多个层面来理解。下面系统性地介绍 Linux 中常见的缓存类型。


一、内存层面的缓存(最核心)

1. Page Cache(页缓存)

  • 作用:缓存文件数据(磁盘文件的内容)
  • 位置:物理内存中
  • 特点:
    • 读文件时先查 page cache
    • 写文件通常先写 cache,再异步刷盘(writeback)
  • 可通过 /proc/meminfo 中的 Cached 查看

2. Buffer Cache(缓冲区缓存)

  • 作用:缓存块设备(如磁盘)的元数据或裸设备数据
  • 在现代 Linux 中:
    • 已与 page cache 融合
    • Buffers 主要表示文件系统元数据的缓存

3. Slab Cache(内核对象缓存)

  • 作用:缓存内核常用对象(如 inode、dentry、task_struct)
  • 两大类型:
    • dentry cache:目录项缓存,加速路径查找
    • inode cache:inode 缓存,加速文件访问
  • 查看:/proc/slabinfo 或 slabtop

4. Swap Cache

  • 作用:缓存被换出到 swap 的内存页
  • 目的:避免频繁 swap 读写

二、文件系统相关缓存

5. Directory Entry Cache(dcache)

  • 加速文件路径解析
  • 属于 slab cache 的一部分

6. Inode Cache

  • 缓存 inode 结构
  • 减少磁盘访问

7. 文件系统日志缓存(Journal Cache)

  • 如 ext4、xfs 的 journal 区域
  • 用于崩溃恢复

三、CPU 与硬件缓存

8. CPU Cache

  • L1 / L2 / L3 Cache
  • 由硬件管理,Linux 只做调度优化

9. Disk Cache(磁盘自身缓存)

  • 存在于硬盘/SSD 控制芯片中
  • Linux 无法直接控制,但可通过 hdparm 查看

10. RAID / 控制器缓存

  • RAID 卡带电池保护的写缓存(BBU Cache)

四、网络相关缓存

11. Socket Buffer Cache

  • 发送/接收网络数据的缓冲区
  • 如 tcp receive buffer、send buffer

12. ARP Cache

  • IP → MAC 地址映射缓存
  • 查看:ip neigh

13. Route Cache(路由缓存)

  • 老内核有,新内核已弱化或移除

14. DNS Cache

  • 通常由:
    • systemd-resolved
    • nscd
    • 应用自身维护

五、用户态 / 应用层缓存

15. 标准库缓存

  • stdio 的 FILE* 缓冲区(如 fwrite)
  • glibc 的 malloc 缓存(arena)

16. 数据库缓存

  • MySQL Buffer Pool
  • Redis 自身内存缓存

17. Web / 代理缓存

  • Nginx 缓存
  • CDN / 浏览器缓存

六、常见查看方式

free -h
cat /proc/meminfo
cat /proc/slabinfo
slabtop
ip neigh
sync
echo 3 > /proc/sys/vm/drop_caches

总结一句话

Linux 缓存主要包括:页缓存、缓冲区缓存、Slab(dentry/inode)缓存、Swap 缓存,以及 CPU、磁盘、网络和应用层缓存。

如果你是想了解:

  • “为什么 Linux 内存看起来用完了”
  • “如何清理缓存”
  • “缓存对性能/数据安全的影响”

可以告诉我具体场景,我可以针对性讲。

0 踩