可以在ElasticSearch中索引1M docs / sec?

时间:2017-02-20 19:41:22

标签: elasticsearch lucene elasticsearch-2.0

我正在尝试优化ElasticSearch中的索引速度,因为我们每小时都在不断重新索引索引,因此我们能够更快地重新索引数据,我们可以实现的延迟越少。

我看到这篇文章谈到了达到100K的重新索引吞吐量:https://thoughts.t37.net/how-we-reindexed-36-billions-documents-in-5-days-within-the-same-elasticsearch-cluster-cd9c054d1db8#.4w3kl9ebf,而这个StackOverflow问题实现了更高的目标:ElasticSearch - high indexing throughput

我的问题是,是否有可能实现每秒100万个文档的持续索引吞吐量,如果是这样,如何?

1 个答案:

答案 0 :(得分:1)

这取决于几个因素,但为什么不可能呢?以下是一些关键因素,可以加快索引过程:

  • 文件的大小(越小越快)
  • 内核数量和内存大小(越多越快)
  • 机器数量(越多越快)
  • 副本数量(更少更快)

例如,使用小型文档和单个八核机器,我能够index at about 70k-120k docs/s。扔几个核心或机器,你可以接近1M docs / s。

更新:使用Elasticsearch 6.1.0进行另一次测试,在单个32核E5上运行64G JVM堆。在这里,esbulk可以索引大约330000个docs / s,使用大小为20-40字节的10M小文档。

免责声明:我写了esbulk。 README包含一些measurements - 目前最大值为约300k docs / s。