4

私は最近mongodbサーバーのベンチマークを試みていましたが、それらは一種のオーバーロードであると推測しています。これはserverStatus()の結果です。

SECONDARY> db.serverStatus().mem
{
    "bits" : 64,
    "resident" : 26197,
    "virtual" : 161106,
    "supported" : true,
    "mapped" : 79994,
    "mappedWithJournal" : 159988
} 

したがって、私が正しく理解していれば、MongoDBは26GBのメモリを使用しています。サーバーに32GBがあり、mongoDbのみを実行している場合は、新しいサーバーを取得してデータをシャーディングすることをお勧めしますか?

4

2 に答える 2

5

MongoDBキャッシングが機能する方法は、使用可能なメモリを使用することになります。常駐部分がメモリ全体にぶつかるとパフォーマンスが大幅に低下しますが、データアクセスパターンによって異なります。すべてが常にメモリにあるとは限らない場合でも、通常は問題ありませんが、ワーキングセット用のスペースが必要です。一般的なアドバイスと詳細については、ワーキングセットサイズとserverStatus()。memを参照しください

于 2012-08-12T01:55:49.077 に答える
3

Joshuaが1つの注意点で言ったことはすべて、スワップが有効になっていることを常に確認する必要があります。そうしないと、OOM Killerの問題が発生する可能性があります。ここを参照してください:

http://www.mongodb.org/display/DOCS/The+Linux+Out+of+Memory+OOM+Killer

基本的に、十分なデータがあるビジーなMongoDBは、最大メモリ使用量に向かって傾向があり、その後そこにとどまります。これはそれ自体が問題を示すものではなく、通常は正確に何が起こるべきかを示しています。パフォーマンスの問題の原因を診断するには、他の場所を探す 必要があります。

于 2012-08-13T16:57:56.640 に答える