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

クエリ区別

クエリ区別は、クラスターが過負荷になったときに、 ノードで非効率的で長時間実行されるクエリ操作を自動的に終了する Atlas の 論理ワークロード管理(IWM)ポリシーです。最もコストがあり、効率が低いクエリ操作のみを対象とすることで、Querymongod Centinel は停止時のリスクを軽減し、負荷を迅速に解放して全体的なワークロードへの影響を最小限に抑えます。

MongoDB、受信操作の数が十分に多く、完全な停止またはほぼ完全な停止時が発生する場合に、ノードが過負荷になっていると見なされます。 MongoDB は、CPU 使用率、キューの深さ、1 秒あたりの操作数、レイテンシなどのメトリクスから過負荷を計算します。

重要

実行時間が長いクエリは、トラフィックが多いときに過剰なリソースを消費するため、クラスターのパフォーマンスを低下させ、停止のリスクを高める可能性があります。クエリ可能性は、次の方法でクラスターの可用性を保護します。

  • 過負荷時に長時間実行クエリ操作を検出して終了する

  • 成功する短い操作の可用性を維持

  • ワークロード全体をシャットダウンせずに停止時リスクを軽減

  • このポリシーを使用するには、Atlas クラスターでMongoDB8.3 以降を実行中いる必要があります。 MongoDB8.3 では、このポリシーはデフォルトで無効になっています。 IWM ポリシーを有効または無効にするには、 IWM 設定 を参照してください。

  • このポリシーは、M10+ Atlasレプリカセットクラスターでのみ使用できます。

  • このポリシーは、シャーディングされたクラスターまたは分析ノードでは使用できません。

  • クエリセグメントは、メモリを消費するがアクティブに実行されていないアイドルカーソルなど、メモリ消費に基づいて操作を終了しません。

  • クエリについては、操作を一時停止したりキューに入れたりしません。

Atlas がクラスターでクエリ区別値ポリシーを実行すると、次のアクションが実行されます。

  1. 過負荷のモニター

  2. 実行時間が長いクエリを識別します

    • クエリ区別 は、現在実行中の操作のセットをモニターし、クエリの実行時間、クエリプランの概要などを含む、事前定義された効率基準に対して各操作を評価します。

  3. 一致する操作を終了します

    • クエリセグメントは、ポリシー条件に一致する操作を終了するために killOp コマンドを発行します。条件に一致する操作のみが停止されます。残りのワークロードは影響を受けません。

    • 操作が終了すると、サーバーはInterruptedDueToOverload エラー コードを返します。エラー処理の詳細については、「 過負荷エラー 」を参照してください。

  4. 通常の操作を再開します

    • 過負荷状態が軽減されると、 ポリシーは操作の終了を停止し、クラスターは 通常の操作に戻ります。

    • ポリシーがアクティブでなくなると、次の情報イベントがクラスターのアクティビティフィードに表示されます。

      "Atlas has switched Query Sentinel to monitoring mode and paused the automatic termination of expensive queries."

      詳しくは、「 IWMアクティビティフィードイベント 」を参照してください。

ポリシーがアクティブな場合、アプリケーション内で長時間実行される操作はInterruptedDueToOverload エラーで失敗します。短縮操作は引き続き成功します。過負荷エラーの処理の詳細については、「 過負荷エラー 」を参照してください。

クエリ区別がワークロードにどのように影響しているかを追跡するには、次の方法を使用します。

戻る

アダプティブ 操作数の制限

項目一覧