【发布时间】: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