由于org.elasticsearch.common.util.concurrent.esthreadpoolexecutor,elasticsearch bulkshardrequest失败

icomxhvb  于 2021-06-10  发布在  ElasticSearch
关注(0)|答案(1)|浏览(532)

我将日志存储到我的React式spring应用程序的ElasticSearch中。ElasticSearch中出现以下错误:
elasticsearch异常[type=es\u rejected\u execution\u exception,reason=rejected execution of processing of[129010665][indices:data/write/bulk[s] [p]]:请求:bulkshardrequest[[logs-dev-2020.11.05][1]],包含[索引{[logs-dev-2020.11.05][\u doc][0d1478f0-6367-4228-9553-7d16d2993bc2],源[n/a,实际长度:[4.1kb],最大长度:2kb]}]和刷新,目标分配id:wwkztubpsaapc3c-jg2z2g,主项:1在esthreadpoolexecutor上[name=10-110-23-125-common-elasticsearch-apps-dev-v1/write,queue capacity=200,org.elasticsearch.common.util.concurrent。esthreadpoolexecutor@6599247a[正在运行,池大小=2,活动线程=2,排队任务=221,完成的任务=689547]]]
我的索引设置:

{
        "logs-dev-2020.11.05": {
        "settings": {
            "index": {
                "highlight": {
                    "max_analyzed_offset": "5000000"
                },
                "number_of_shards": "3",
                "provided_name": "logs-dev-2020.11.05",
                "creation_date": "1604558592095",
                "number_of_replicas": "2",
                "uuid": "wjIOSfZOSLyBFTt1cT-whQ",
                "version": {
                "created": "7020199"
                }
            }
        }
    }
}

我浏览过这个网站:
https://www.elastic.co/blog/why-am-i-seeing-bulk-rejections-in-my-elasticsearch-cluster
我原以为在线程池中调整“写入”大小可以解决问题,但在站点中不建议这样做,如下所示:
因此,强烈建议不要调整队列大小,因为这就像在问题上贴上临时的创可贴,而不是实际解决根本问题。
那么我们还能做些什么来改善这种状况呢?
其他信息:
ElasticSearch7.2.1版
集群健康状况良好,它们是集群中的3个节点
索引将每天创建,每个索引有3个碎片

pw9qyyiw

pw9qyyiw1#

虽然您是对的,增加线程池大小并不是一个永久性的解决方案,但您会很高兴地知道,elasticsearch本身在一次小的版本升级中就将写线程池(用于批量请求)的大小从200增加到了10k。请看es 7.8中200的尺寸,而es 7.9中10k的尺寸。
如果您使用的是ES7.x版本,那么您还可以将大小增加到10k(如果不是10k),然后至少增加1k(以避免拒绝请求)。
如果你想要一个合适的解决方案,你需要做以下几件事
找出它是否是一致的,或者只是一些短时间的写请求突发,而在一段时间内被清除。
如果它是一致的,那么你需要弄清楚是否所有的写优化都到位了,请参考我的简短提示来提高索引速度。
请参阅,如果已达到数据节点的全部容量,如果是,请扩展集群以处理增加的/合法的负载。

相关问题