总览
Page Cache:内核管理的内存
场景:服务器的 load 飙高; 服务器的 I/O 吞吐飙高; 业务响应时延出现大的毛刺; 业务平均访问时延明显增加
应用程序产生Page Cache的逻辑示意图,是在应用程序读写文件的过程中产生的
产生,即被分配:有两种方式
1 标准 I/O 是写的 (write) 用户缓冲区 (Userpace Page 对应的内存),然后再将用户缓冲区里的数据拷贝到内核缓冲区 (Pagecache Page 对应的内存);如果是读的 (read) 话则 是先从内核缓冲区拷贝到用户缓冲区,再从用户缓冲区读数据,也就是 buffer 和文件内容不存在任何映射关系
2 存储映射 I/O 而言是直接将 Pagecache Page 给映射到用户地址空间,用户直接读写 Pagecache Page 中内容。
产生例子:首先往用户缓冲区 buffer( Userspace Page) 写入数据, 然后 buffer 中的数据拷贝到内核缓冲区(Pagecache Page),如果内核缓冲区中还没有这个 Page,就会发生 Page Fault 会去分配一个 Page,拷贝结束后该 Pagecache Page 是一个 Dirty Page(脏页),然后该