|
based on v18 Mongoには、データベース操作のパフォーマンスを分析するためのプロファイリングツールが含まれています。 currentOp コマンドも参照ください。 プロファイリングの有効化プロファイリングを有効にするには、 mongo シェルから以下のコマンドを実行してください。 > db.setProfilingLevel(2);
{"was" : 0 , "ok" : 1}
> db.getProfilingLevel()
2
Profiling level は
1.3.0 では、 --profile=1 をコマンドラインで指定することでも有効化できます。 見るプロファイリングされたデータはデータベースの system.profile コレクションに保存されます。このコレクションをクエリーすることで結果を見ることができます。 > db.system.profile.find()
{"ts" : "Thu Jan 29 2009 15:19:32 GMT-0500 (EST)" , "info" : "query test.$cmd ntoreturn:1 reslen:66 nscanned:0 <br>query: { profile: 2 } nreturned:1 bytes:50" , "millis" : 0}
...
$cmd (command) の操作を含まない出力を見るには、 db.system.profile.find( function() { return this.info.indexOf('$cmd')<0; } )
特定のコレクションに対する操作を見るには、 > db.system.profile.find( { info: /test.foo/ } )
{"ts" : "Thu Jan 29 2009 15:19:40 GMT-0500 (EST)" , "info" : "insert test.foo" , "millis" : 0}
{"ts" : "Thu Jan 29 2009 15:19:42 GMT-0500 (EST)" , "info" : "insert test.foo" , "millis" : 0}
{"ts" : "Thu Jan 29 2009 15:19:45 GMT-0500 (EST)" , "info" : "query test.foo ntoreturn:0 reslen:102 nscanned:2 <br>query: {} nreturned:2 bytes:86" , "millis" : 0}
{"ts" : "Thu Jan 29 2009 15:21:17 GMT-0500 (EST)" , "info" : "query test.foo ntoreturn:0 reslen:36 nscanned:2 <br>query: { $not: { x: 2 } } nreturned:0 bytes:20" , "millis" : 0}
{"ts" : "Thu Jan 29 2009 15:21:27 GMT-0500 (EST)" , "info" : "query test.foo ntoreturn:0 exception bytes:53" , "millis" : 88}
指定したミリ秒より遅い操作を見るには、 > db.system.profile.find( { millis : { $gt : 5 } } )
{"ts" : "Thu Jan 29 2009 15:21:27 GMT-0500 (EST)" , "info" : "query test.foo ntoreturn:0 exception bytes:53" , "millis" : 88}
新しい情報を最初に出すには、 db.system.profile.find().sort({$natural:-1})
mongoシェルには、1ms以上かかった最近5つの結果を表示するヘルパーがあります。 コマンドプロンプトから show profile とタイプしします。 出力結果を理解する出力結果は次の値をレポートします。
クエリーパファーマンスの最適化
注意: インデックスを作ることはコストになります。インデックスは、コレクションをinsertやupdateする度にディスク書き込みをすることの原因になります。たまにしか実行しないクエリーの場合、クエリーを"遅い"ままにして、インデックスを作らない方がよい場合もあります。クエリが書き込みと比べ多いコレクションには、インデックスをつけたほうがいいでしょう。 updateパフォーマンスの最適化
プロファイラのパフォーマンスプロファイラを有効化してある場合、それほどひどくありませんが、パフォーマンスに悪影響を与えます。 プロファイルのデータは、制限付きコレクション なデータベースコレクションに保存されます。 デフォルトでは、最近のいくつかの操作だけが入るような小さなサイズがセットされています。 "遅い(slow)"の定義1.3.0 から、二つの方法で "遅い(slow)"を定義できます。
参照 |

IF YOU HAVE A QUESTION, POST IT TO THE USER GROUP.
These pages are fine for comments, but for questions, your best bet will always be the MongoDB User Group. blog comments powered by Disqus