为什么Elasticsearch批量索引API会在很长时间后创建文档?

时间:2016-09-22 17:44:56

标签: node.js elasticsearch

我有一个包含两个节点的Elasticsearch集群。使用Node js批量插入API,我使用下面的代码插入每个插入1000个文档的流数据,

esclient1.bulk({
  body: messages
}, function (err, resp) {
  //handle resp
});

邮件会发布到服务器,但文档只在一两个小时后才会创建。不知道为什么会这么拖延。

每个批量插入共有2M记录分成1K。即使在24小时之后,文档仍然被编入索引。请告诉我问题的原因。

我们使用AWS EC2 m3.large(7.5 GB RAM,32 GB SSD存储)x 2

Kibana状态显示堆总数(MB) - 652.92&堆使用(MB) - 631.56。这是否导致索引创建缓慢?

1 个答案:

答案 0 :(得分:0)

在节点统计信息

下检查bulk线程池

http://your_server_id:9200/_nodes/stats/thread_pool

检查那里的queue大小。如果队列中有太多请求,那么您没有足够的线程来处理所有批量索引请求。

根据可用的cpu核心数分配线程数。 https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-threadpool.html

  

用于索引/删除操作。线程池类型用a修复   可用处理器数量的大小,queue_size为200。

我还会查看指数统计数据

http://your_server_ip:9200/_nodes/stats/indices

具体检查索引,合并和细分下的数字,看看是否有什么突出的。