Elastic 搜索空索引的开销是多少?

Posted

技术标签:

【中文标题】Elastic 搜索空索引的开销是多少?【英文标题】:How much is the overhead of an Elastic search empty index? 【发布时间】:2017-03-24 12:41:49 【问题描述】:

我有一个只有一个节点的集群。机器有 8 GB 内存,ES 进程分配有 6 GB 内存。我在该节点上总共运行了 531 个分片(522 个索引)。大多数分片几乎不包含数据。

以下是统计数据:

文档总数:265743

已删除文档:27069

总大小:136923957 字节 (130.5 MB)

字段数据:250632 字节

filter_cache:9984 字节

segments: (total:82 memory_in_bytes: 3479988)

已提交的堆为 5.9 GB,使用的为 5.6 GB。

如果我在集群中创建更多索引,则节点统计数据会执行 GC 并最终进入 OOM。我知道这个配置有很多错误(只有一个节点,8 GB 中给出了 6 GB)。

我想知道内存是如何用完的。总文档、过滤器缓存、字段数据加起来几乎为零,但我仍然在用完所有内存。

【问题讨论】:

jmap -histo:live PID 是获取堆摘要的正确工具,如果您不知道是什么占用了您的内存。 【参考方案1】:

根据我个人使用 ES 1.x 和 2.x 的经验,每个分片的开销并非微不足道,通常在几 MB/分片的范围内。据我了解,这是为索引缓冲区、状态元数据、对 lucene 对象的引用、缓存对象等保留的内存。

基本上保留了一点内存,以便能够快速索引并在需要时开始缓存。我不知道这在 5.x 版本中还有多少是正确的。

【讨论】:

以上是关于Elastic 搜索空索引的开销是多少?的主要内容,如果未能解决你的问题,请参考以下文章

elastic索引最多可以创建多少字段

Elastic Search中Query String常见语法

ElasticSearch入门

微服务 初始 分布式搜索引擎 Elastic Search

Elasticsearch-搜索分析器与索引分析器

微服务 分布式搜索引擎 Elastic Search RestAPI