Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs 菜单
Docs 主页
/ /

查询哨兵

查询哨兵是Atlas中的一项 智能工作负载管理 (IWM) 策略,当集群过载时,它会自动终止mongod 节点上低效且长时间运行的查询操作。通过仅针对成本最高、效率最低的查询操作,查询哨兵可以快速缓解压力,同时对总体工作负载的影响最小,从而降低中断风险。

当传入操作的数量大到足以导致完全或接近完全中断时, MongoDB会认为节点过载。 MongoDB根据 CPU 利用率、队列深度、每秒操作数和延迟等指标计算过载。

重要

如果长时间运行的查询在高流量期间消耗过多资源,则可能会降低集群性能并增加中断风险。 Query Sentinel 通过以下方式保护集群可用性:

  • 在过载期间检测并终止长时间运行的查询操作

  • 保持可用性,以实现持续成功的较短操作

  • 在不关闭整个工作负载的情况下降低中断风险

  • Atlas 集群必须运行MongoDB8.3 或更高版本才能使用此策略。在MongoDB8.3 上,默认禁用此策略。要启用或禁用 IWM 策略,请参阅 IWM 设置。

  • 此策略仅适用于 M10+ Atlas副本集集群。

  • 此策略在分片的集群或分析节点上不可用。

  • 查询哨兵不会根据内存消耗终止操作,包括消耗内存但未主动执行的空闲游标。

  • 查询哨兵不会暂停或对操作进行排队。

当Atlas在集群上运行 Query Sentinel 策略时,它会执行以下操作:

  1. 监控过载

  2. 识别长时间运行的查询

    • 查询哨兵监控当前运行的操作设立,并根据预定义的效率标准评估每个操作,其中可以包括查询运行时、查询计划摘要等。

  3. 终止匹配操作

  4. 恢复正常运行

当该策略处于活动状态时,应用程序中长时间运行的操作将失败,并显示InterruptedDueToOverload 错误。较短的行动继续取得成功。要学习;了解有关处理过载错误的更多信息,请参阅过载错误。

您可以使用以下方法追踪Query Sentinel 如何影响您的工作负载:

后退

自适应操作速率限制

在此页面上