我在将文档建立索引到ElasticSearch中受阻。我试图将(仅)约370万个文档索引到一个ES索引中,并将约340万个文档(约占3GB磁盘空间)编入索引之后,索引速率已降至约10个文档/分钟,这非常令人担忧。
索引(错误地)只有一个分片,我认为这可能会导致某个地方的瓶颈。
Elasticsearch版本:1.7.1
节点配置:
m3.large (7.5 GB RAM, 32 GB SSD storage)
ES_Heap_size: 1 GB (this is what I see on KOPF, which also shows Heap usage: ~400MB out of ~1008MB)
50GB EBS volume attached with each node
我们正在使用TransportClient与ES进行交互。 BulkProcessor已配置为5 MB的大容量,2分钟的刷新间隔(为避免发送小于5 MB的数据,我们正在批量索引)和6个并发请求。与ES并行可以有大约10个批量请求。
看到索引编制速度放慢之后,我执行了以下操作:
> Changed the cluster setting to threadpool.bulk.size of 2 & threadpool.bulk.queue_size: 80.
> Turned off index refreshes for my index.
> Set number_of_replicas to 0 (earlier it was 1).
> indices.store.throttle.type has also been set to "none" to avoid indexing throttling while segment merges.
以上均无济于事。
KOPF仪表板显示的CPU使用率不到14%。
请帮忙。谢谢!
最佳答案
我使用了Bulkprocessor,并插入了大约7百万(150秒)的记录,但是从ES端的任何 Angular 都没有观察到速度慢。
我使用了使用传输客户端以Java实现的BulkProcessor(单线程)。其余的配置几乎相同。
如果上述结果令人信服,那么也许您可以尝试以下几件事:
关于indexing - Elasticsearch批量索引变慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32845767/