外观
一句话答案
Page Cache 是 OS 将磁盘文件缓存在内存中的页,读写先走缓存,Kafka 高性能的重要原因之一。
核心要点
读: 先查 Page Cache → 命中直接返回 → 未命中从磁盘加载并缓存
写: 先写 Page Cache(脏页)→ 后台 pdflush 异步刷盘
应用: Kafka 高性能的重要原因之一(顺序写 Page Cache + sendfile)
追问与易错
追问方向:
- 脏页刷盘策略?
- PageCache 会导致数据丢失吗?
- Kafka 为什么依赖 PageCache?
易错点:
- ❌ PageCache 等于应用层缓存——是 OS 级别的
- ❌ fsync 频繁调用没问题——开销大影响性能
💡 记忆锚点
PageCache像OS自带的"热菜窗口":磁盘是后厨(慢),内存是窗口(快)。读文件先看窗口有没有(命中直接拿),没有就让后厨做一份放到窗口。写文件先放窗口(脏页),后厨空闲时再入库(pdflush异步刷盘)。Kafka快就是因为顺序写这个窗口+sendfile直接端给客人。