为什么Elasticsearch批量索引API需要很长时间才能创建文档



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

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

消息被发布到服务器,但是文档只在一两个小时后才被创建。不知道为什么这样拖延。

总共有2M条记录被拆分为每个大容量插入1K。即使在24小时后,这些文件仍在被索引。请让我知道问题出在哪里。

我们使用AWS EC2 m3。大(7.5 GB内存,32gb SSD存储)× 2

Kibana状态显示Heap Total (MB) - 652.92 &堆使用(MB) - 631.56。这是索引创建缓慢的原因吗?

在节点状态下查看bulk线程池

http://your_server_id: 9200/_nodes/统计/thread_pool

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

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

用于索引/删除操作。线程池类型是固定的

当前可用处理器的大小,queue_size为200.

我也会检查索引状态

http://your_server_ip: 9200/_nodes/统计/指数

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

最新更新