Docs Menu
Docs Home
/
MongoDB Cloud Manager
/ /

低速クエリのモニターと改善

項目一覧

  • プロジェクトの Performance Advisor の有効化または無効化
  • クエリが遅くなる一般的な理由
  • インデックスの考慮事項
  • Performance Advisor にアクセスする
  • インデックスに関する提案
  • 推奨インデックスを作成する

Performance Advisor は、 MongoDB によって低速と見なされるクエリ述語を持つ操作を監視し、クエリのパフォーマンスを向上させるための新しいインデックスを提案します。 選択したホストと期間にわたって、Performance Advisor は、ログにある最近の低速クエリを最大20 、 000まで評価します。

推奨されるインデックスには、クエリシェイプでグループ化されたサンプル クエリが付属しています。これらのクエリは、インデックスに関する提案によりメリットを得るコレクションに対して実行されたものです。 Performance Advisor が、Cloud Manager クラスターのパフォーマンスに悪影響を与えることはありません。

クエリ インサイト を使用して、コレクション レベルのクエリ レイテンシを監視することもできます

注意

Performance Advisor を表示するには、次の条件を満たす必要があります。

  • Cloud Premium ユーザーであること。

  • クラスターで MongoDB バージョン 3.2 以降を実行します。

  • MongoDB Agent Automation を使用してクラスターを管理します。

    MongoDB Agent の詳細については、「 MongoDB Agent 」を参照してください。

サンプル クエリのフィールド値を表示するには、次の 1 つ以上のロールを持つ Cloud Manager ユーザーである必要があります。

上記のロールを持たないユーザーは、 フィールド値を表示できません。

重要

必要な特権

をプロジェクトで Performance Advisorを有効にするには、プロジェクトのProject Ownerロールが必要です。

Performance Advisor はデフォルトで有効になっています。 Performance Advisor を無効または有効にするには、次の手順に従います。

1
  1. まだ表示されていない場合は、希望するプロジェクトを含む組織を選択しますナビゲーション バーのOrganizationsメニュー

  2. まだ表示されていない場合は、ナビゲーション バーのProjectsメニューから目的のプロジェクトを選択します。

  3. Projects メニューの横にある Options メニューをクリックし、 Project Settings をクリックします。

    [ Project Settings ]ページが表示されます。

2

クエリが遅い場合、一般的な理由は次のとおりです。

  • クエリは現在のインデックスではサポートされていません。

  • コレクション内の一部のドキュメントには、検索とインデックス作成にコストがかかる大きな配列フィールドがあります。

  • 1 つのクエリで、$lookup を使用して複数のコレクションから情報を検索します。

インデックスは読み取りパフォーマンスを向上させますが、書き込み中にインデックスを更新する必要があるため、インデックスの数が多いと書き込みパフォーマンスに悪影響を与える可能性があります。コレクションにすでに複数のインデックスがある場合は、新しいインデックスを作成するかどうかを決定する際に、読み取りと書き込みのパフォーマンスのトレードオフを考慮してください。このようなコレクションのクエリを変更して既存のインデックスを活用できるかどうか、また、クエリが新しいインデックスのコストに見合うほど頻繁に発生するかどうかを調べます。

Performance Advisor は、不要なインデックスを識別して削除するのに役立ちます。 詳細については、「ドロップインデックスの推奨事項を確認する 」を参照してください。

Performance Advisorにアクセスするには、以下の手順を行います。

1
  1. まだ表示されていない場合は、目的のプロジェクトを含む組織をナビゲーション バーの Organizations メニューで選択します。

  2. まだ表示されていない場合は、ナビゲーション バーのProjectsメニューから目的のプロジェクトを選択します。

  3. Deployment ページがまだ表示されていない場合は、サイドバーの Deployment をクリックします。

    配置ページが表示されます。

2

レプリカセットが シャーディングされたシャーディングされたクラスターの一部である場合は、まずレプリカセットを含むシャーディングされたシャーディングされたクラスターをクリックします。

3
4

Performance Advisor は過去 24 時間からインデックスの推奨事項を取得します。

  • Performance Advisor に推奨事項がある場合は、Create Indexes セクションの View Recommendations ボタンをクリックします。

  • Performance Advisor に推奨事項がない場合、過去 5 日間までのインデックスの推奨事項を検索するには、Create Indexes セクションの Explore Recommendations をクリックします。

Performance AdvisorImpactは、インデックスを に従ってランク付けします。これは、関連する操作によって読み取られた無駄なバイトの合計に基づいています。インデックスランキングの詳細については、「 インデックスランキングを確認する 」を参照してください。

5

次のいずれかのオプションで結果をフィルタリングします。

  • Filter by shards and hosts

  • Filter by namespace

  • Filter by time range

  • Filter by date and time

注意

低速クエリ ログに集計パイプラインの連続する $match ステージが含まれている場合、2 つのステージが最初の $match ステージにまとまって、単一の $match ステージになります。その結果、Performance Advisor のクエリシェイプは、実際に実行したクエリと異なる場合があります。

Performance AdvisorImpactは、インデックスを に従ってランク付けします。これは、関連する操作によって読み取られた無駄なバイトの合計に基づいています。 Performance Advisor がインデックスをランク付けする方法の詳細については、「 インデックスのランク付けを確認する 」を参照してください。

Performance Advisor が提案するインデックスを作成する方法については、「提案されたインデックスを作成する」を参照してください。

Performance Advisor が提案する各インデックスには、次のメトリクスが含まれます。これらのメトリクスは、インデックスによって改善されるクエリに特に適用されます。

メトリクス
説明
Execution Count
改善される 1 時間あたりに実行されるクエリの数。
Average Execution Time
影響を受けるクエリの現在の平均実行時間(ミリ秒単位)。
Average Query Targeting
影響を受けたクエリによって返されたドキュメント 1 件ごとの平均読み取りドキュメント数。 クエリ ターゲティング スコアが高いほど、クエリ効率は低くなります。 クエリ ターゲティングについて詳しくは、「クエリ ターゲティング 」を参照してください。
In Memory Sort
メモリ内でソートする必要があった、1 時間あたりの影響を受けたクエリの現在の数。
Average Docs Scanned
スキャンされたドキュメントの平均数。
Average Docs Returned
返されたドキュメントの平均数。
Avgerage Object Size
平均オブジェクト サイズ。

Performance Advisor は、提案されたインデックスごとに、インデックスによって改善される最も頻繁に実行されるクエリシェイプを表示します。Performance Advisor は、クエリシェイプごとに次のメトリクスを表示します。

メトリクス
説明
Execution Count
クエリシェイプに一致する、1 時間あたりに実行されるクエリの数。
Average Execution Time
クエリシェイプにマッチするクエリの平均実行時間(ミリ秒)。
Average Query Targeting
一致するクエリによって返されたドキュメント 1 件ごとの平均読み取りドキュメント数。 クエリ ターゲティング スコアが高いほど、クエリ効率は低くなります。 クエリ ターゲティングについて詳しくは、「クエリ ターゲティング 」を参照してください。
Average Docs Scanned
スキャンされたドキュメントの平均数。
Average Docs Returned
返されたドキュメントの平均数。

Performance Advisorには、クエリシェイプに一致する実行済みの各サンプル クエリと、そのクエリの特定のメトリクスも表示されます。

各インデックス提案には、インデックスの対応するクエリシェイプに対して返されたドキュメントごとに読み取られたドキュメントの数を示す Average Query Targeting スコアが含まれます。スコア 1 は、読み取られたすべてのドキュメントがクエリに一致し、クエリ結果とともに返されたため、非常に効率的なクエリシェイプを表します。提案されたすべてのインデックスは、クエリのパフォーマンスを向上させる機会を表します。

デフォルトでは、Performance Advisorは配置内のすべてのクラスターのインデックスを提案します。特定のコレクションからの推奨インデックスのみを表示するには、Performance Advisor の上部にある Collection ドロップダウンを使用します。

Performance Advisor の上部にある Time Range ドロップダウンを使用して、Performance Advisor がインデックスを提案する際に考慮する時間範囲を調整することもできます。

Performance Advisor は、 ctime タイムスタンプ形式を使用するように構成された MongoDB データベース向けのインデックスは提案できません。 回避策として、このタイプのデータベースにはタイムスタンプ形式をiso 8601 -utcまたはiso 8601 -local に設定します。

Performance Advisor によって提案されたインデックスを、Performance Advisor 内で直接作成できます。インデックスを作成するときは、ターゲットコレクションへの読み取りと書き込みの比率を念頭に置きます。インデックスにはパフォーマンスコストが伴いますが、大規模なデータセットで頻繁にクエリを実行する場合はコストに見合うだけの価値があります。インデックス作成戦略について詳しくは、「インデックスの作成戦略」を参照してください。

  • Performance Advisorでは一度に 1 つのインデックスのみ作成できます。 同時にさらに作成したい場合は、 Data Explorerまたはshellを使用できます

  • Cloud Manager は常に配置の最上位にインデックスを作成します。 Performance Advisor の表示中にシャーディングされたクラスター内の単一のシャードのインデックスを作成すると、Cloud Manager はシャーディングされたクラスター全体に対してそのインデックスを作成します。

推奨インデックスを作成するには、次の手順に従います。

1

Performance Advisor はCreate Indexダイアログを開き、選択したインデックスに基づいてFieldsに事前入力します。

2
{ <option1>: <value1>, ... }

次のオプション ドキュメントでは、インデックスの unique オプションと name を指定します。

{ unique: true, name: "myUniqueIndex" }
3

照合を使用して、大文字と小文字やアクセント記号の規則など、文字列比較の言語独自のルールを指定します。照合ドキュメントには、ICU ロケール コード を示す locale フィールドが含まれており、照合動作を定義する他のフィールドが含まれている場合があります。

次の照合オプション ドキュメントでは、フランス語の照合にロケール値 fr を指定しています。

{ "locale": "fr" }

MongoDB 照合がサポートするロケールのリストを確認するには、言語とロケールのリストを参照してください。各ロケールでデフォルトで有効になっている照合オプションなどについて詳しくは、MongoDB マニュアルの 照合 を参照してください。

4

警告

重大な問題による SERVER-68925 、特定の バージョン の MongoDB Agent を使用する Cloud Manager の配置では、次の MongoDB バージョンを実行しているクラスターで は自動ローリング インデックスのビルド は実行されません。

  • MongoDB 4.2.19-4.2.22

  • MongoDB 4.4.13-4.4.16

  • MongoDB 5.0.6-5.0.11

  • MongoDB 6.0.0-6.0.1

クラスターで手動ローリング インデックスのビルドを安全に実行できます。 自動ローリング インデックスビルドを安全に実行するには、MongoDB Agent を12.4.0.7703以降にアップグレードするか、クラスターを次のようにアップグレードします。

  • MongoDB 4.2.23 以降

  • MongoDB 4.4.17 以降

  • MongoDB 5.0.12 以降

  • MongoDB 6.0.2 以降

重要

ローリング インデックス構築は、特定の条件を満たした場合にのみ成功します。インデックス構築に成功するようにするには、再起動ループをトリガーすることが多い次の設計パターンを避けてください。

注意

Data Explorer は、スタンドアロン配置のローリング方式でのインデックスのビルドをサポートしていません。

ローリング方式でインデックスをビルドすると、レプリカセットおよびシャーディングされたクラスターへのインデックスビルドによるパフォーマンスへの影響が軽減されます。 クラスターの可用性を維持するために、Cloud Manager はセカンダリ から始めて、一度に 1 つのノードをクラスターから削除します。

ローリング方式でインデックスを構築した後、MongoDB database が4.2未満のFCVで実行される場合は、ヘッドデータベースを再同期して、ヘッドデータベースが新しいインデックスを考慮するようにします。

Cloud Manager は、すべてのノードで成功しないローリング インデックス ビルドを自動的にキャンセルします。 ローリング インデックスのビルドが一部のノードで完了したが、他のノードで失敗した場合、Cloud Manager はビルドをキャンセルし、正常にビルドされたすべてのノードからインデックスを削除します。

ローリング インデックスのビルドがキャンセルされた場合、Cloud Manager は アクティビティフィード イベント を生成し、次の情報を含む通知メールをプロジェクト所有者に送信します。

  • ローリング インデックス構築に失敗したクラスターの名前

  • ローリング インデックス構築に失敗した名前空間

  • クラスターと名前空間を含むプロジェクト

  • プロジェクトを含む組織

  • アクティビティ フィード イベントへのリンク

インデックスの再構築について詳しくは、「レプリカセットでインデックスを構築する」を参照してください。

注意

次のインデックス オプションは 、ローリング方式でのインデックスのビルドと互換性がありません。

Optionsペインでこれらのオプションを指定すると、Cloud Manager はこれらのオプションを無視します。

5
6

重要

インデックスのビルドが完了すると、Cloud Manager はアクティビティフィード イベントを生成し、次の情報を含む通知メールをプロジェクト所有者に送信します。

  • インデックス構築の完了日

  • インデックス構築が完了したクラスターの名前

  • インデックス構築が完了した名前空間

  • クラスターと名前空間を含むプロジェクト

  • プロジェクトを含む組織

  • アクティビティ フィード イベントへのリンク

戻る

低速クエリの分析