ElasticSearch - 确定最大分片大小

cou*_*ug_ 7 size sharding max elasticsearch

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

小智 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 -再访/