我有一个包含两个节点的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。这是否导致索引创建缓慢?
答案 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
具体检查索引,合并和细分下的数字,看看是否有什么突出的。