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

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

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

我的一些想法和观点:

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

一个可以划分出预定义 RAM 块用于缓存的专用文件系统将是理想的选择。但由于 ES/Lucene 的设计限制,除了购买专用节点外,我目前对任何方案都持开放态度。

相关内容