次のセクションでは、運用パフォーマンスを評価するための手法について説明します。
データベースプロファイラーを使用してデータベースに対する操作を評価する
MongoDB は、データベースに対する各操作のパフォーマンス特性を示すデータベースプロファイラーを提供します。 プロファイラー を使用して、低速で実行されているクエリまたは書き込み操作を見つけます。 この情報を使用して、たとえば、作成するインデックスを決定できます。
プロファイラー エントリと読み取り操作および書込み (write ) 操作の 診断ログ メッセージ(mongod/mongos ログ メッセージなど)には次のものが含まれます。
replica setのセカンダリ メンバーは、適用に低速操作しきい値よりも長い時間がかかるoplogをログに記録するようになりました。 これらの遅い oplog メッセージ:
ログは、テキスト
applied op: <oplog entry> took <num>msを含むREPLコンポーネントの下にあります。ログレベルに依存しない(システムレベルでもコンポーネントレベルでも)
プロファイル レベルに依存しないでください。
slowOpSampleRateの影響を受けます。
プロファイラーは遅い oplog エントリをキャプチャしません。
詳細については、「データベースプロファイラ 」を参照してください。
を使用してdb.currentOp() mongod操作を評価する
db.currentOp()メソッドは、 mongodインスタンスで実行されている現在の操作を報告します。
explainを使用してクエリ パフォーマンスを評価する
cursor.explain()メソッドとdb.collection.explain()メソッドは、クエリや実行統計を満たすために選択されたインデックス MongoDB など、クエリ実行に関する情報を返します。 返される情報の量を制御するには、 queryPlannerモード、 executionStatsモード、またはallPlansExecutionモードでメソッドを実行します。
例
式{ a: 1 }に一致するドキュメントのクエリでcursor.explain()を使用するには、 recordsという名前のコレクションで、 mongoshの次のような操作を使用します。
db.records.find( { a: 1 } ).explain("executionStats")
MongoDB 4.2 以降では、 explain の出力に次のものが含まれます。
planCacheKeyは、低速クエリのクエリプラン キャッシュに関する詳細なインサイトを提供します。
詳細については、「結果の説明」、「 cursor.explain() 、 db.collection.explain() 、「クエリ パフォーマンスの分析 」を参照してください。