現在の操作のパフォーマンスを評価する
項目一覧
次のセクションでは、運用パフォーマンスを評価するための手法について説明します。
データベースプロファイラーを使用してデータベースに対する操作を評価する
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()
、「クエリ パフォーマンスの分析 」を参照してください。