当前位置: 首页 > 面试题库 >

ElasticSearch给出有关队列大小的错误

曹理
2023-03-14
问题内容

RemoteTransportException [[Death] [inet [/172.18.0.9:9300]] [bulk / shard]];
嵌套:EsRejectedExecutionException
[在org.elasticsearch.action.support.replication.TransportShardReplicationOperationAction$AsyncShardOperationAction$1@12ae9af上拒绝执行(队列容量50)];

这是否意味着我一次要在一个批量中进行太多操作,或者在一个连续的时间内进行太多操作?是否有我应该增加的设置或应该做不同的事情?

一个线程建议“由于最近的默认设置,我认为您需要增加’threadpool.bulk.queue_size’(可能还有’threadpool.index.queue_size’)设置。”
但是,我不想在不了解故障的情况下随意增加设置。


问题答案:

您要增加线程池中可用的大容量线程数。ES在几个命名池中预留了线程以用于各种任务。这些池有一些设置。类型,大小和队列大小。

从文档:

queue_size允许控制没有线程执行的挂起请求的队列大小。默认情况下,它设置为-1表示无边界。当请求进入并且队列已满时,它将中止请求。

对我来说,这意味着与当前队列大小相比,有更多的大容量请求排队等待池中的线程执行其中一个。该文档似乎表明队列大小默认为-1(上面的文本表示)和50(文档中的批量调用表示)。您可以看一下消息来源,以确保您使用的是es版本,或者设置更高的数字,以查看批量问题是否消失了。

ES线程池设置doco



 类似资料:
  • 问题内容: 我一直在查看我的elasticsearch日志,但遇到了错误 查找错误后,普遍的共识是增加队列的大小,如此处所述-https: //www.elastic.co/guide/en/elasticsearch/reference/current/modules- threadpool.html 我的问题是实际上该如何做?我缺少某处的配置文件吗? 问题答案: 要更改队列大小,可以将其添加到

  • 我需要能够更改ThreadPoolExecator的任务队列的大小。当然,BlockingQueue不支持更改大小,ThreadPoolExecitor不支持更改队列。 所以,我想到的方法是使用ThreadPoolExecutor。shutdownNow(),它返回了一个尚未执行的可运行程序列表。然后,我可以创建一个具有所需队列大小的新执行器,并重新提交所有任务。 问题是在shutdownNow(

  • 我正在尝试定期检查Kafka某个主题的队列大小。尽管如此,我甚至不知道如何检查这个指标一次。我对Kafka完全陌生,所以我不知道该怎么做。我认为这将涉及创建一个生产者或消费者来与队列交互,但我遇到了一个障碍。

  • 我把数据放如下: 因此,每当我查询terms facet时,它都会给出正确的结果,下面是我的Elasticsearch查询: 但是,当我将filter添加到Facet时,它不会显示任何Facet计数,以下是查询: 我得到的结果如下 所以,任何人都知道为什么它会给出这样的计数。

  • 我试图在Python中声明一个动态列表,并对其进行各种操作,但在操作之后,它没有给出所需的输出。 当我像一样将列表声明为一般长度时,它工作得很好: