操作のアダプティブ レート制限は、Atlas の インテリジェント ワークロード マネジメント(IWM)ポリシーです。 IWM は、負荷下で高可用性を維持するためのリアルタイムワークロードモニタリングと自動セーフエンドポイントを提供する 動的リソースマネージャー です。操作の適応型レート制限は、クラスターが過負荷になった場合にMongoDB がmongod に送信する操作を受け入れ、拒否するレートを動的に調整します。
MongoDB、受信操作の数が十分に多く、完全な停止またはほぼ完全な停止時が発生する場合に、ノードが過負荷になっていると見なされます。 MongoDB は、CPU 使用率、キューの深さ、1 秒あたりの操作数、レイテンシなどのメトリクスから過負荷を計算します。
重要
このポリシーは、負荷分散ポリシーです。このポリシーが Atlas クラスターでアクティブになっており、クラスターが過負荷になっている場合は、関連する過負荷エラーが表示される可能性があります。
トラフィックが急増した場合、ノードの最大負荷を超える多くの操作を受け入れると、クラスターが限界に達し、パフォーマンス、タイムアウト、フェイルオーバーが発生する可能性があります。クラスターの回復にはかなりの時間がかかる場合があります。
「 操作の適応型レート制限 」ポリシーは、次の方法で過負荷を防止します。
許可率をシステムが安全に処理できる値に制限する
クラスターの安定性を維持し、停止を回避する
予測可能なレイテンシで一部の操作を成功させる
トラフィックの急増からの回復の迅速化
Considerations
このポリシーを使用するには、Atlas クラスターでMongoDB8.3 以降を実行中いる必要があります。 MongoDB8.3 では、このポリシーはデフォルトで無効になっています。 IWM ポリシーを有効または無効にするには、 IWM 設定 を参照してください。
このポリシーは、
M10+Atlasレプリカセットクラスターでのみ使用できます。このポリシーは、シャーディングされたクラスターでは使用できません。
動作
Atlas がクラスターで操作の適応型レート制限を実行すると、次のアクションが実行されます。
過負荷のモニター
Atlas は、各ノードの過負荷のインジケーターを継続的に評価します。
Atlas が過負荷状態を検出すると、操作の累積レート制限ポリシーが有効になります。 Atlas は次のアラート条件でアラートをトリガーします。
プロジェクトのアラート設定を変更するには、「 アラートの構成 」を参照してください。
安全な認可率を決定します
システムが過負荷に近づくと、Atlas は最近の条件に基づいて、各ノードで新しい操作を許可できる最大安全率を計算します。
エントリ点で操作を認可または拒否します
MongoDB は、安全なレート内に到着するすべての操作を通常どおり受け入れて実行します。
MongoDB は、各ノード上の の安全なレートを超えて到着した操作を直ちに拒否します。
mongodMongoDB、タイムアウトするまでこれらの操作はキューに入れられません。
時間の経過とともに入力率を調整する
ポリシーがアクティブになっている場合、アプリケーション内の一部の操作はすぐに失敗し、SystemOverloadedError ラベルが含まれるエラーが発生します。他の操作は引き続き成功します。これにより、すべての操作がタイムアウトしてノードがクラッシュする状況を防ぎます。過負荷エラーを検出し、再試行ストームを回避する方法の詳細については、「 過負荷エラー 」を参照してください。
観察可能性
次の方法を使用して、 操作の適応型レート制限 がワークロードにどのように影響するかを追跡できます。
アラートの構成
クラスターの過負荷条件により、インテリジェント ワークロード管理アラート条件のデフォルトのアラートがトリガーされます。アラートを管理する方法については、「 アラート設定の構成 」を参照してください。
クラスターの過負荷状態が解決されると、Atlas は、IWM ポリシーの解決を示す情報イベントをアクティビティフィードに書込みます。詳しくは、「 IWMアクティビティフィードイベント 」を参照してください。