这是一个场景:在index1中,我有超过60000000条记录,在同一索引中,我以每秒630条记录的速率放入数据,然后我创建了另一个索引index2,并根据以下文档启动了重新索引:https://www.elastic.co/guide/en/elasticsearch/reference/6.8/docs-reindex.html
在一个新索引中传输1000条记录花了40多分钟,但是如果我根本不做put,那么同样的重新索引需要5分钟。
有没有一种方法可以让我以更快的速度重新索引,即使我以每秒600条记录的速度放置数据,为什么我使用aws elastic search 7.7版本m4.large.elasticsearch 2节点要花这么长时间
3条答案
按热度按时间xnifntxz1#
由于索引速度慢,ibexit可能是对的。你的硬盘有问题。
但他们也有一些最佳实践,可以节省你一些时间。第一个建议是在索引时间内禁用副本并刷新目标索引。完成后重新启用。index.number\u副本数:0 index.refresh\u间隔:-1
你可以在这里读到一篇非常好的文章:https://www.elastic.co/guide/en/elasticsearch/reference/current/tune-for-indexing-speed.html
oaxa6hgo2#
有弹力的´s的读,尤其是写速度,主要受底层存储的i/o限制。如果停止索引,重新索引将加快,因为有更多的iops和带宽可用于重新索引。
尝试使用更快的带有ssd或nvme ssd的磁盘,并防止使用有利于示例存储卷的网络连接(esb)存储,至少在所选存储中提供所需的iops+带宽。
vptzau2j3#
除了@ibexit和@jay answers之外,我想强调的是,可能有多个原因导致速度缓慢,这可能是由于es设置和您正在使用的应用程序(以及您正在使用的方式)来重新索引数据。
我写了一个博客,涵盖了es和应用程序方面的问题,并强调了一些简短的提示,以提高具体的重新索引性能,你也可以使用免费的检查工具,它提供了关于es设置和其他最佳做法的建议,也不捕捉任何用户特定的或敏感的数据。