弹性搜索 - 最大碎片大小

时间:2014-12-03 05:55:47

标签: performance elasticsearch sharding

我遇到过,在学习ElasticSearch期间无法得出最终结论。

  • ElasticSearch的最大分片大小是什么?
  • 索引有多少个分片?有没有最高限额?

3 个答案:

答案 0 :(得分:0)

在阅读了多篇文章和博客并运行我自己的负载测试后,我得出结论 每个碎片的碎片数量和最大大小取决于许多因素,如:

  1. 插入数据的大小
  2. 插入数据的速率
  3. 数据检索/搜索是否同时发生?如果是,搜索的频率是多少?进行了多少次并发搜索?
  4. 服务器配置详细信息,例如CPU中的核心数,硬盘大小,内存大小等
  5. 因此,要找出每个分片的优化大小和部署的优化分片数量,一种好方法是使用各种参数组合运行测试。加载并得出结论。

答案 1 :(得分:0)

  • 简单:不要跨越40亿份文件
  • 考虑堆大小的32位系统的限制(对于64位系统仍然有效)。 ES建议即使对于64位系统也要高达32 GB的半内存,因为它涉及内存处理限制和优化。如果你有超过64 GB的内存,你可以为Lucene保留更多内存吗?

有关详细信息:https://www.elastic.co/guide/en/elasticsearch/guide/current/heap-sizing.htmlhttps://qbox.io/blog/optimizing-elasticsearch-how-many-shards-per-index

答案 2 :(得分:0)

正如其他人所说,理论最大值非常大,但根据您的系统,可能存在实际限制。

我发现碎片开始变得不那么高,大约150GB。我有50GB的分片表现得相当不错。在这两种情况下,分片都是节点上唯一的分片,节点有54GB的系统内存,31GB用于elasticsearch。在50GB时,我得到的结果来自相对较重的查询大约100ms,而150GB则需要500ms或更长时间。

我确信这取决于我使用的映射以及许多其他因素,但如果您轮询数据点,它可能很有用。