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

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给出有关队列大小的错误 的全部内容, 来源链接: utcz.com/qa/408179.html

回到顶部