Page Cache本身是操作系统的概念. ES只是很自然的用到了这个概念.
从操作系统的角度, page cache也称为disk cache, 是操作系统对硬盘(HDD or SSD)的缓存. OS 使用当前空闲的RAM来保存page cache, 用来加速对硬盘的访问. page cache在内核实现, 对应用程序几乎是透明的.
一般操作系统会把全部空闲的内存用作page cache. 因为被分配用作page cache的内存非常容易就可以被重新声明为可被应用使用的空闲内存, 这个过程几乎没有性能损耗, 操作系统甚至可以直接把用作page cache的内存报告为空闲内存.
因为Lucene的segment文件都是不可变的, 因此可以非常好的利用page cache.
在以下这些时候, page cache会失效, 需要重新读取硬盘:
page cache的缓存内容就是索引文件.
可以配置page cache预先读取. 主要是解决操作系统重启后造成的page cache失效问题. 如果使用这一项的话需要确保内存足够装下所有索引文件.
详情参考:
https://www.elastic.co/guide/en/elasticsearch/reference/8.1/preload-data-to-file-system-cache.html
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。