ElasticSearch - 确定最大分片大小

时间:2013-06-06 14:02:12

标签: size elasticsearch max sharding

希望这个问题不会过时,但我还没有找到明确的答案。根据去年的一个ES演示文稿(http://www.elasticsearch.org/videos/big-data-search-and-analytics/),一个碎片的“最大”大小。我正在尝试为我的应用程序确定这个,但据我所知,我还没有打到它。有谁知道单个分片索引的行为达到了最大值?插入是否失败,或仅仅是索引变得无法使用?

1 个答案:

答案 0 :(得分:13)

为了自己测试,我在一个elasticsearch分片中索引维基百科中的所有英文文章(没有任何历史信息)。弹性搜索数据文件夹在测试结束时增长到~42GB。经验教训是:

  • 索引速度不受分片大小的影响。请注意,我没有尝试一次使用多个线程进行索引,但单线索引速度在测试期间或多或少是恒定的
  • 另一方面,
  • 查询速度受到碎片大小的极大影响。特别是一旦您尝试一次查询多个用户。确切的数字将在很大程度上取决于您的机器的功能,数据结构和查询的线程数。为了给你一个想法,在我的开发机器上运行elasticsearch,用25个并发用户查询维基百科碎片导致平均响应时间为3.5秒(峰值朝向半分钟)。

我的结论是,一个太大的分片不会仅仅因为索引而使弹性搜索失败。查询大型分片可能对您的需求来说太慢,或者在某些情况下,甚至会使用OutOfMemoryException(例如,大型分面查询)来破坏elasticsearch。

这个答案是基于我自己的调查。全文可以在我的博客上阅读:

http://blog.trifork.com/2013/09/26/maximum-shard-size-in-elasticsearch/
http://blog.trifork.com/2013/11/05/maximum-shard-size-in-elasticsearch-revisited/