拒绝请求
编辑拒绝请求编辑
当 Elasticsearch 拒绝请求时,它会停止操作并返回一个带有 429
响应代码的错误。拒绝请求通常是由以下原因引起的:
- 一个 耗尽的线程池。耗尽的
search
或write
线程池会返回一个TOO_MANY_REQUESTS
错误消息。 - 一个 断路器错误。
- 高 索引压力 超过
indexing_pressure.memory.limit
。
检查拒绝的任务编辑
要检查每个线程池的拒绝任务数量,请使用 cat 线程池 API。rejected
与 completed
任务的比率很高,特别是在 search
和 write
线程池中,这意味着 Elasticsearch 定期拒绝请求。
response = client.cat.thread_pool( v: true, h: 'id,name,active,rejected,completed' ) puts response
GET /_cat/thread_pool?v=true&h=id,name,active,rejected,completed
防止拒绝请求编辑
修复高 CPU 和内存使用率
如果 Elasticsearch 定期拒绝请求和其他任务,您的集群可能存在高 CPU 使用率或高 JVM 内存压力。有关提示,请参阅 高 CPU 使用率 和 高 JVM 内存压力。
防止断路器错误
如果您经常触发断路器错误,请参阅 断路器错误,以获取有关诊断和防止断路器错误的提示。