加载中...

Page Cache(页缓存)是操作系统内核在内存中以页(通常 4KB)为单位缓存文件内容的机制:读文件时数据先进入页缓存,再次读取直接命中内存;写文件默认也先写页缓存并标记为脏页,由内核线程稍后异步写回磁盘。
Linux 会把几乎所有空闲内存用作页缓存,free 命令中的 buff/cache 即为此项,这部分内存在应用需要时可被回收,因此「内存被占满」常是误解。脏页写回由 vm.dirty_ratio、vm.dirty_expire_centisecs 等参数控制;fsync/fdatasync 可强制落盘保证持久性;O_DIRECT 标志则绕过页缓存直接读写,数据库(如自带缓冲池的 InnoDB)常用它避免双重缓存。
mmap 将文件页直接映射进进程地址空间,与页缓存共享同一份物理页;readahead 预读机制对顺序访问自动多读数据提升命中率。
Kafka 等系统的高吞吐设计正是建立在「依赖页缓存 + 顺序 I/O + sendfile 零拷贝」之上。

登录 后参与讨论
暂无讨论,来发表第一条评论吧