找出弹性搜索中慢速索引的原因

时间:2016-07-29 05:08:50

标签: elasticsearch

我编写了一个脚本,用弹性搜索对数据集进行批量索引。但是,如果我在不同服务器上的同一数据集上运行相同的脚本,则执行时间会有所不同。在配备SSD的服务器中,200万个文档在10分钟内完成索引,但是在普通硬盘上,需要一个小时才能完成。是否有一种诊断工具可以用来找出导致减速的原因?

其他一些信息:

  • 该脚本是为Python3编写的,并使用elasticsearch-py模块进行批量索引
  • 两台服务器都运行相同的操作系统(Ubuntu 14.04 LTS),速度较慢的硬盘驱动器有64GB的RAM,但带SSD的一半有RAM。

1 个答案:

答案 0 :(得分:1)

当摄取大量记录时,您将遇到索引合并。这是一个严重依赖底层存储速度的过程。 RAM在这里并不是那么重要 - 在查询性能和你做的事情上它可能更重要。与SSD平台相比,磁盘延迟会增加并导致速度减慢。

因此,我对SSD加速并不感到惊讶。根据制造商的不同,SSD存储比HDD快3-8倍。如果考虑到HDD还需要执行定位操作以访问存储的不同部分,很明显,仅使用SDD而不是HDD可以将磁盘绑定应用程序加速10倍甚至更多。