我正在尝试优化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万个文档的持续索引吞吐量,如果是这样,如何?
答案 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。