【问题标题】:Elasticsearch - Keep hitting "429 Too Many Requests" errorElasticsearch - 不断点击“429 Too Many Requests”错误
【发布时间】:2021-08-23 11:13:27
【问题描述】:

运行具有 2 个数据节点的 AWS m4.large.elasticsearch Elasticsearch(服务)实例已经一年多了,没有任何严重问题。由于需求增加,我们额外设置了 2 个 r6g.large Elasticsearch 实例(它们具有与 m4.large 相同数量的 vCPU 和内存,但根据文档甚至应该提供更好的性能)。

自从使用这些后,我们的应用程序中就出现了“429 Too Many Requests”错误。在对https://aws.amazon.com/es/premiumsupport/knowledge-center/resolve-429-error-es/ 进行了一些挖掘之后,尝试了以下事情但没有成功:

  • 将断路器限制增加到 90% => 不能解决问题
  • 切换到 c6g.xlarge(计算容量翻倍的优化实例)=> 无法解决问题
  • 启用慢速搜索日志 + 错误日志以希望获得更多信息 => 没有记录任何内容

如果有人对我们如何解决这个问题有任何想法,将不胜感激!

PS:“旧”版本运行的是 Elasticsearch 7.7,而新版本运行的是 7.10,但会惊讶于这就是原因。

【问题讨论】:

  • 被拒绝的请求是否与搜索或索引请求有关,或两者兼而有之?
  • 值得注意的是,c6g 的 RAM 是 m4 的一半。此外,m4、r6g 和 c6g 都有 2 个 vCPU,因此您并没有真正增加计算能力。被拒绝的请求通常是由于缺乏计算能力来及时处理传入的请求,所以你应该尝试增加 CPU 而不是 RAM,看看会发生什么
  • 索引的批量大小是多少?
  • @Val 主要是让他们处理 /_search/scroll 请求!偶尔也会在 _bulk 上。从 r6g.large 切换到 c6g.XLARGE(注意 X),这意味着计算优化 + vCPU 和 RAPM 是 .large 的两倍。
  • @hamidbayat 我们主要是在 /_search/scroll 上遇到问题

标签: amazon-web-services elasticsearch


【解决方案1】:

作为写入拒绝的 429 错误消息表示批量队列错误。每个节点上的批量队列可以容纳 50 到 200 个请求,具体取决于您使用的 Elasticsearch 版本。有多个关于这个和旧版本的 Elasticache 的报告可能是根本原因。

【讨论】:

    猜你喜欢
    • 2021-12-31
    • 1970-01-01
    • 2021-08-14
    • 1970-01-01
    • 2020-12-23
    • 2020-09-27
    • 2021-08-06
    • 1970-01-01
    • 2021-12-13
    相关资源
    最近更新 更多