mongodb database profiler
データベースクエリとパフォーマンスを監視するためのMongoDBデータベースプロファイラーのすべてをご覧ください。
これで F reeMongoDBトレーニングシリーズ 、私たちはについて学びました MongoDBのパフォーマンス 前のチュートリアルで。
このチュートリアルでは、MongoDB DatabaseProfilerについて詳しく学習します。
データベースプロファイラーは、個々のデータベースインスタンスで実行されるクエリに関する情報を収集するために使用されます。
エンタープライズレベルのアプリケーションを使用していて、同時にクエリを実行している場合は、一部のクエリでデッドロックに直面する必要があるかもしれません。
デッドロックやあらゆる種類の問題に直面しているクエリを特定するために、プロファイラーと呼ばれる機能があります。 MongoDBは、実行された個々のクエリのログを記録するためのこの機能も提供しています。これらのログには、構成と管理の制御とともに、すべてのCrud操作が記録されます。
デフォルトでは、すべてのデータは system.profiles MongoDB管理インスタンス内のコレクション。
デフォルトではメモリの消費量が多いため、プロファイラーは無効になっています。クエリに関する情報を記録するプロファイラーには3つの異なるレベルがあり、MongoDBの任意のインスタンスに任意のレベルのプロファイラーを簡単に設定できます。
学習内容:
- データベースのプロファイリングを有効にして構成する
- プロファイリングのレベルを確認する
- プロファイリングを無効にする
- オーバーヘッドプロファイラー
- system.profileプライマリコレクションのサイズを変更します
- 結論
- 推奨読書
データベースのプロファイリングを有効にして構成する
データベースプロファイラーは、mongoシェルを使用してprofileコマンドでアクティブ化されます。クエリ実行の記録をログに記録するためにプロファイラーをアクティブ化するときはいつでも、プロファイリングのレベルに言及する必要があります。次のコードを使用して、MongoDBのプロファイリングを有効にします。
構文
db.setProfilingLevel(LEVEL)
コード
db.setProfilingLevel(2)
図1:Mongoシェル内
図2:Robo3Tの場合
上の画像では、4つの結果があることがわかります。最初のフィールドには、以前に使用されたプロファイルレベルが表示され、最後のフィールドには操作の成功が示されます。
プロファイリングのレベルを確認する
プロファイラーの現在のレベルをプレビューするには、次のコードを使用する必要があります。
コード
db.getProfilingStatus()
現在および以前に使用されたプロファイラーのステータスが表示されます。
図3:Mongoシェル内
経験豊富なセレンウェブドライバーインタビューの質問と回答
図4:Robo3Tの場合
- だった 現在のプロファイリングレベル。
- スローム フィールドには、動作時間制限がミリ秒単位で表示されます。
- サンプルレート は、プロファイリングされる低速操作の割合を示しています。
プロファイラーレベルのみを取得するには、mongoシェルでdb.getProfilingLevel()を使用できます。
コード
db.getProfilingLevel()
図5:Mongoシェル内
図6:Robo3Tの場合
プロファイリングを無効にする
プロファイラーを非アクティブ化する場合は、次のコードを使用して、クエリ実行情報のログ記録を停止できます。
コード
db.setProfilingLevel(0)
図7:Mongoシェル内
図8:Robo3Tの場合
オーバーヘッドプロファイラー
クエリ実行の記録をログに記録している場合、またはプロファイラーを使用している場合は、クエリ実行のパフォーマンスに影響を与える可能性があります。デフォルトでは、プロファイラーコレクションには情報を格納するためのメモリとして1MBがあります。
巨大なアプリケーションと大量のトランザクションデータがある場合、プロファイラーとして大量の情報を保存することはオーバーヘッドになります。
system.profileプライマリコレクションのサイズを変更します
system.profilesコレクションのサイズを変更する前に、次のことを行う必要があります。
無料でアニメを見るのに最適なサイト
- プロファイリングを無効にする
- コレクションsystem.profileを削除します
- new.profileシステムコレクションを作成します
- プロファイリングを再アクティブ化する
コード
db.setProfilingLevel(0) db.system.profile.drop() db.createCollection( 'system.profile', { capped: true, size:4000000 } ) db.setProfilingLevel(1)
図9:Mongoシェル内
図10:Robo3Tの場合
結論
MongoDBデータベースプロファイラーは、MongoDBインスタンス内のクエリとそのパフォーマンスを監視するために使用されます。前のチュートリアルで説明したように、さまざまなレベルのプロファイリングでクエリを監視できます。
このチュートリアルでは、プロファイリングのレベルを切り替える方法と、要件に従ってそれらを無効にする方法を正常に学習しました。プロファイラーレコードを保存するために必要なしきい値を設定することもできます。
今後のチュートリアルでは、MongoDBでのユーザーの作成と役割の割り当てについて説明します。
前のチュートリアル | 次のチュートリアル
推奨読書
- MongoDBパフォーマンス:ロックパフォーマンス、ページフォールト、データベースプロファイリング
- MongoDBデータベースバックアップの作成
- MongoDBデータベース作成チュートリアル
- JMeterを使用したデータベーステスト
- 例を含むMongoDBSort()メソッド
- 初心者向けの20以上のMongoDBチュートリアル:無料のMongoDBコース
- MongoDBでのユーザー認証
- MongoDBレプリケーションとは