MongoDB用の低速クエリアナライザーが利用可能になったことをお知らせします。低速クエリアナライザを使用すると、特定の期間における任意のサーバー上の低速クエリをすばやく特定できます。デフォルトでは、「遅いクエリ」は100ミリ秒以上かかるクエリとして定義されています。
低速クエリヒートマップ
ヒートマップは、システム内の遅いクエリの概要をすばやく視覚的に示します。チャートの縦軸は指数関数的な時間です。これは、チャート内のバブルが高いほど、クエリが遅くなることを意味します(桁違いに)。したがって、チャートの上部に常にあるバブルに注意してください。バブルをクリックして、基になるクエリの詳細を表示することもできます。
同じタイプのクエリは同じ色になります。これにより、遅いクエリのパターンを簡単に特定できます。グラフの一部を選択して、特定の時間範囲にズームインすることもできます。
例えば。上記の例では、10秒以上かかっている赤い点のクラスターを見ることができます。また、1時間に1回実行されているバックグラウンドジョブの実行に28秒かかっていることもわかります。データポイントをクリックすると、実際のクエリを取得できます。
低速クエリデータテーブル
低速クエリデータテーブルは、すべての低速クエリデータの表形式のビューを提供します。データテーブルには、低速クエリに関するいくつかの重要な指標が表示されます。
- タイプ -クエリの種類–クエリ、挿入、更新、削除など
- データベースとコレクション –クエリのDBとコレクション
- クエリ –クエリパラメータが削除された実際のクエリ
- カウント –選択した期間にクエリが実行された回数
- nScanned –インデックスでスキャンされたエントリの数+コレクションからスキャンされたオブジェクトの数
- 期間(ミリ秒) –クエリの平均実行時間(ミリ秒)
- 応答の長さ(バイト) –クエリ結果の平均応答長(バイト単位)
- n返品 -クエリの実行ごとに返されるドキュメントの平均数
- 読み取りロック(マイクロ秒) –マイクロ秒単位の平均読み取りロック時間
- 書き込みロック(マイクロ秒) –マイクロ秒単位の平均書き込みロック時間
遅いクエリテーブルを上記の列のいずれかで並べ替えて、必要なビューを作成できます。クエリデータは、分析のためにExcelにダウンロードすることもできます。 [データをcsvとしてダウンロード]リンクをクリックして、低速クエリデータをダウンロードし、Excelでカスタム分析を実行します。
問題のあるクエリを簡単に特定できるように、多数の組み込みビューを提供しています。
「最も頻繁」でソートされた低速クエリ
このビューには、システムで最も頻繁に実行されるクエリが(降順で)表示されます。リストの上位のクエリに特に注意を払う必要があります。 nScanned値が高い場合、または期間が長い場合は、このクエリに適切なインデックスを追加する必要があります。これにより、ディスクからスキャンされるドキュメントの数が減ります。
「スキャンされた最大ドキュメント/インデックス」でソートされた低速クエリ
このビューには、コレクション内の最も多くのインデックスエントリまたは最も多くのドキュメントをスキャンしているクエリが(降順で)表示されます。 「nScanned」値が高いということは、インデックスがないか、適切なインデックスがないことを意味します。システム内のすべてのクエリにインデックスを追加することはできない場合がありますが、少なくとも高頻度のクエリがすべて適切にインデックス付けされていることを確認する必要があります。
「最も遅いクエリ」でソートされた遅いクエリ
このビューは、実行に最大の時間を費やしているクエリを(降順で)表示します。クエリの実行頻度が非常に低い場合は、クエリを最適化するかどうかを決定できます。
「返された最大ドキュメント数」でソートされた低速クエリ
このビューには、最も多くの結果を返しているクエリが(降順で)表示されます。多くの結果を返すと、多くの場合、システムにネットワーク負荷がかかります。また、すべてのフィールドではなく、ドキュメントから必要なフィールドのみを返すようにする必要があります。
「ReadLock」でソートされた低速クエリ
このビューは、マイクロ秒単位で最大読み取りロック時間を消費しているクエリを(降順で)表示します。 WiredTigerストレージエンジンを使用している場合、WiredTigerはドキュメントレベルのロックを採用しているため、これは通常問題にはなりません。
「書き込みロック」でソートされた低速クエリ
このビューは、マイクロ秒単位で最大書き込みロック時間を消費しているクエリを(降順で)表示します。 WiredTigerストレージエンジンを使用している場合、WiredTigerはドキュメントレベルのロックを採用しているため、これは通常問題にはなりません。