
Elasticsearch有一个线程池和一个用于每个节点搜索的队列。线程池将具有N个准备就绪的工作者来处理请求。当请求到来且工作人员空闲时,由工作人员处理。现在默认情况下,工作程序数量等于该CPU上的内核数量。当工作人员忙碌并且有更多搜索请求时,该请求将进入队列。队列的大小也受到限制。如果默认大小为100,并且如果发生的并行请求多于此,那么这些请求将被拒绝,正如您在错误日志中看到的那样。
解决方案:
对此的直接解决方案是增加搜索队列的大小。我们还可以增加线程池的大小,但这可能会严重影响单个查询的性能。因此,增加队列可能是一个好主意。但是请记住,此队列位于内存中,过多增加队列大小可能会导致内存不足问题。(更多信息)
增加节点和副本的数量-请记住,每个节点都有自己的搜索线程池/队列。此外,搜索可以在主分片或副本上进行。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)