是否有用于 Linux 的具有专用内存缓存的基于磁盘的文件系统?

And*_*ite 6 linux filesystems cache elasticsearch

我们有两个(有时甚至更多)应用程序争夺操作系统页面缓存。特别是 ElasticSearch 非常依赖于操作系统页面缓存。在低延迟情况下,缓存未命中可能会影响性能。ES 是节点上唯一的低延迟应用程序,因此它需要操作系统页面缓存。由于整个索引无法放入 RAM 中,因此使用预热器来填充缓存,但几个小时后,这些缓存被其他应用程序丢弃。

我的一些想法和想法:

  • RAMFS(但索引不适合RAM,所以不要去那里)
  • TMPFS(但它不会通过重新启动并使用交换而持久化)
  • Lucene/ES 级别的缓存(似乎根本不存在,OS 页面缓存他们的缓存策略)
  • 专用硬件(这很难证明是合理的,因为机器有足够的 RAM 和 CPU,只需要更好地利用它;另外我们需要很多节点)。
  • 带锁定的 VMTouch(无法真正检测 ES 何时合并新段并需要解锁旧文件并映射新文件)
  • 完整的 VM(性能成本和额外的管理/管理)

可以为缓存开辟预定义 RAM 块的专用文件系统将是理想的选择。但是,由于 ES/Lucene 的设计限制,我目前对购买专用节点的任何事情都持开放态度。