用于并行搜索的Elasticsearch中的EsRejectedExecutionException

用于并行搜索的Elasticsearch中的EsRejectedExecutionException,第1张

用于并行搜索的Elasticsearch中的EsRejectedExecutionException

Elasticsearch有一个线程池和一个用于每个节点搜索的队列。线程池将具有N个准备就绪的工作者来处理请求。当请求到来且工作人员空闲时,由工作人员处理。现在默认情况下,工作程序数量等于该CPU上的内核数量。当工作人员忙碌并且有更多搜索请求时,该请求将进入队列。队列的大小也受到限制。如果默认大小为100,并且如果发生的并行请求多于此,那么这些请求将被拒绝,正如您在错误日志中看到的那样。

解决方案:

  1. 对此的直接解决方案是增加搜索队列的大小。我们还可以增加线程池的大小,但这可能会严重影响单个查询的性能。因此,增加队列可能是一个好主意。但是请记住,此队列位于内存中,过多增加队列大小可能会导致内存不足问题。(更多信息)

  2. 增加节点和副本的数量-请记住,每个节点都有自己的搜索线程池/队列。此外,搜索可以在主分片或副本上进行。



欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5015816.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-11-14
下一篇2022-11-14

发表评论

登录后才能评论

评论列表(0条)

    保存