操作的自适应速率限制器是Atlas中的一项 智能工作负载管理 (IWM) 策略。 IWM 是一种动态资源管理器,可提供实时工作负载监控和自动化保护措施,从而在负载下保持高可用性。当集群过载时,操作的自适应速率限制器会动态调整MongoDB接受和拒绝应用程序发送到mongod 的操作的速率。
当传入操作的数量大到足以导致完全或接近完全中断时, MongoDB会认为节点过载。 MongoDB根据 CPU 利用率、队列深度、每秒操作数和延迟等指标计算过载。
重要
该策略为减载策略。如果此策略在Atlas 集群上处于活动状态并且集群过载,则可能会看到相关的过载错误。
当流量突然激增时,接受超过节点最大负载的操作可能会使集群不堪重负,从而导致性能下降、超时和潜在的故障转移。集群可能需要很长时间才能恢复。
操作的自适应速率限制器策略通过以下方式防止过载:
将准入速率限制在系统可以安全处理的范围内
保持集群稳定性并避免中断
以可预测的延迟保持部分操作成功
更快地从流量峰值中恢复
Considerations
Atlas 集群必须运行MongoDB8.3 或更高版本才能使用此策略。在MongoDB8.3 上,默认禁用此策略。要启用或禁用 IWM 策略,请参阅 IWM 设置。
此策略仅适用于
M10+Atlas副本集集群。此策略不适用于分片的集群。
行为
当Atlas对集群运行“操作的自适应速率限制器”策略时,它会执行以下操作:
监控过载
Atlas不断评估每个节点上的过载指标。
当Atlas检测到过载情况时,将激活操作策略的自适应速率限制器。 Atlas会在以下警报条件下触发警报:
确定安全准入率
当系统接近过载时, Atlas会根据最近的情况计算每个节点上可以接受新操作的最大安全速率。
在入口点允许或拒绝操作
MongoDB允许并照常运行在安全速率内到达的任何操作。
MongoDB会立即拒绝每个节点上超过 安全速率的任何操作。在这些操作超时之前,
mongodMongoDB不会对这些操作进行排队。
随着时间的推移调整准入率
随着负载下降和集群恢复, Atlas会放宽速率限制,以便可以再次接受更多操作。
当策略不再处于活动状态时,集群的操作日志中会显示以下信息事件:
"Atlas is no longer regulating the admission rate of new operations."要学习;了解详情,请参阅 IWM操作日志事件。
当该策略处于活动状态时,应用程序中的某些操作会快速失败,并显示包含SystemOverloadedError 标签的错误。其他操作继续成功。这样可以防止所有操作都超时,从而导致节点崩溃。要详细学习;了解如何捕获过载错误并避免重试风暴,请参阅过载错误。
可观察性
您可以使用以下方法追踪操作的自适应速率限制器如何影响您的工作负载:
监控集群指标: 操作限制指标显示 IWM 策略已终止的操作数量。
配置警报:
当集群过载情况得到解决时, Atlas会将信息事件写入操作日志,以指示 IWM 策略的解决方案。要学习;了解详情,请参阅 IWM操作日志事件。