ElasticSearch给出了队列大小的错误 [英] ElasticSearch gives error about queue size

查看:1120
本文介绍了ElasticSearch给出了队列大小的错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述


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

RemoteTransportException[[Death][inet[/172.18.0.9:9300]][bulk/shard]]; nested: EsRejectedExecutionException[rejected execution (queue capacity 50) on org.elasticsearch.action.support.replication.TransportShardReplicationOperationAction$AsyncShardOperationAction$1@12ae9af];



这是否意味着我一次做一个批量的操作太多,或者连续太多的批次呢?有没有一个我应该增加的设置或者我应该做的不同?

Does this mean I'm doing too many operations in one bulk at one time, or too many bulks in a row, or what? Is there a setting I should be increasing or something I should be doing differently?

一个线程建议我想你需要增加你的'threadpool.bulk.queue_size'(和可能的'threadpool.index.queue_size')设置由于最近的默认值。但是,我不想在不理解错误的情况下任意增加设置。

One thread suggests "I think you need to increase your 'threadpool.bulk.queue_size' (and possibly 'threadpool.index.queue_size') setting due to recent defaults." However, I don't want to arbitrarily increase a setting without understanding the fault.

推荐答案

你想增加批量的数量线程池中可用的线程。 ES在几个命名池中放置线程,用于各种任务。这些池有几个设置;类型,大小和队列大小。

You want to up the number of bulk threads available in the thread pool. ES sets aside threads in several named pools for use on various tasks. These pools have a few settings; type, size, and queue size.

从文档:


queue_size允许控制未处理
请求的队列没有线程来执行它们。默认情况下,它设置为
到-1,这意味着它是无界的。当请求进入并且队列
已满时,它将中止请求。

The queue_size allows to control the size of the queue of pending requests that have no threads to execute them. By default, it is set to -1 which means its unbounded. When a request comes in and the queue is full, it will abort the request.

对我来说,意味着你有更多批量请求排队等待线程从池中执行其中一个,而不是您当前的队列大小。文档似乎表明队列大小默认为-1(上面的文字)和50(在doc中的批量呼出)。您可以查看源,以确保您的版本es或设置较高的数字,看看您的批量问题是否简单走开。

To me that means you have more bulk requests queued up waiting for a thread from the pool to execute one of them than your current queue size. The documentation seems to indicate the queue size is defaulted to both -1 (the text above says that) and 50 (the call out for bulk in the doc says that). You could take a look at the source to be sure for your version of es OR set the higher number and see if your bulk issues simply go away.

ES线程池设置doco

这篇关于ElasticSearch给出了队列大小的错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆