2011-01-21 11 views
3

私はmongostatsを使用して、mongodbインスタンス内の全体の活動を診断してきました。パフォーマンスの問題や劣化を診断するためにどのように使用できますか?mongostatsを使用してmongodb内のパフォーマンスの問題を診断する方法

1つのフィールドは、他のすべてのフィールドの結果に基づいて、ロックされた%と予測される動作についてより詳しく知りたいと思っています。

この機能はちょっと曖昧で、もう少し洗い流す必要があります。

答えて

6

ロックされた%は、サンプルあたりグローバル書き込みロック(mongoがプロセス全体の書き込みロックを持つことに注意してください)の時間の割合です。書き込みの数(挿入、更新、削除、db.eval()など)を増やすと、このパーセンテージが増加します。値が高いということは、データベースが書き込みが完了するのを待ってロックされている時間が長くなり、その結果、ロックが解除されるまでクエリが完了しないことを意味します。したがって、全体的なクエリのスループットは低下します(時には劇的に)。

"faults"は、mongoが仮想メモリ空​​間にマッピングされているが物理メモリにはマッピングされていないデータをヒットしようとしていることを意味します。基本的には、メモリではなくディスクに当たることを意味し、RAMが足りないことを示しています(たとえば、インデックスのバランスが正しくないなど)。メモリが提供されている場合、これはLinuxでも利用可能です。これはあなたがそれを得ることができるように0に近いべきである。

"qr:qw"は読み書きキューです。これらがゼロでない場合は、サーバーが処理できる以上のクエリを受信して​​いることを意味します。この数字が一貫して高くないか成長していない限り、これは必ずしも問題ではありません。オーバーオールシステムのパフォーマンスがクエリのスループットをサポートするのに十分でないことを示します。

他のほとんどのフィールドは、わかりやすく、あまり役に立ちません。 netIn/Outは、あなたが縛られていると予想される場合に便利です。これらの値が最大ネットワーク帯域に近づくと、これが発生します。