elasticsearch预加载数据到文件系统缓存
  TEZNKK3IfmPf 2023年11月14日 25 0

默认情况下,Elasticsearch搜索完全依赖于操作系统文件系统缓存来缓存I / O操作。可以设置index.store.preload,以便通知操作系统启动时将索引文件的内容预加载到内存中。此设置接受以逗号分隔的文件扩展名列表:扩展名在列表中的所有文件将在打开时预先加载。这可以有助于提高索引的搜索性能,特别是当主机操作系统重新启动时,因为这会导致文件系统缓存被删除。但是请注意,这可能会减慢索引的打开,因为它们只有在数据加载到物理内存之后才可用。

此设置量力而为,而且可能无法在所有的文件系统和主机操作系统上运行。

index.store.preload是一个静态设置,可以在config/elasticsearch.yml中设置:

index.store.preload: [ "nvd" "dvd" ]

或者在创建索引时设置:

PUT  /my_index
{
   "settings" : {
     "index.store.preload" : [ "nvd" "dvd" ]
   }
}

默认值为空数组,这意味着任何东西都不会被加载到文件系统缓存中。对于主动搜索的索引,您可能需要将其设置为[“nvd”,“dvd”],这将导致norms doc values被加载到物理内存中。

可以使用通配符来表示所有文件都应该预加载:index.store.preload:[“*”]。但是请注意,将所有文件加载到内存中,特别是stored fields 和 term vectors的文件通常是没有用的,因此更好的选择是尽可能将其设置为[“nvd”,“dvd”,“tim”,“doc” “,”dim“],它将预先加载norms, doc values, terms dictionaries, postings lists 和 points,这是搜索和聚合索引中最重要的部分。

请注意,对于大于主机主内存大小的索引,此设置可能是危险的,因为这会导致文件缓存系统在缓存大容量后被重新打开从而丢弃之前的缓存,从而使索引和搜索速度更慢。

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月14日 0

暂无评论

推荐阅读
  TEZNKK3IfmPf   2024年04月26日   42   0   0 缓存
TEZNKK3IfmPf