DBAtlas · 数据库运维图谱

es_rejected_execution_exception: es_rejected_execution_exception: rejected execution of ... on ... (queue capacity ...) (HTTP 429)(线程池队列已满,执行被拒绝)

Elasticsearch

含义

由于相关线程池(search、write/bulk 等)的队列容量已满,操作被拒绝。在过载情况下,Elasticsearch 通过拒绝请求(背压)来保护自身,并返回 HTTP 429(Too Many Requests)。

原因

并发请求量非常高、bulk 请求非常大或非常频繁、繁重的聚合/搜索负载、节点/CPU 资源不足,或线程池队列相对工作负载过小。

解决方法

在客户端以指数退避方式重试;429 通常是瞬时的。减小 bulk 批次大小和发送速率,降低并发度。监控被拒绝的操作:GET _cat/thread_pool?v&h=node_name,name,active,queue,rejected。对于持续负载,增加节点/资源(水平扩展)。增大队列大小是最后手段;根本原因在于容量。

在 DBAtlas 中打开 →

同一数据库的其他条目