aws m1.largeインスタンスにmongodb 64ビット2.xバージョンを配備しました。私はMongoの最高のパフォーマンスを見つけようとしていますaws(m1.large)の待ち時間はMongoDB 64b 2.x
は、インライトhttp://www.snailinaturtleneck.com/blog/tag/mongodb/(およびmongodb read/write performance and mongo hosting in the cloud)のAWS上で私たちを与えることができ
私は1人のコレクション、すなわちユーザと1デシベルを作成した10万枚の記録/ JSONオブジェクトを挿入した(各jsonオブジェクトのサイズは4KBです)、 "user-"の接尾辞として乱数を使用します。また、ユーザーIDにインデックスを作成しました。
さらに、私はdbプロファイラを設定して、20ms以上かかる低速クエリを記録します。私は10スレッドでJavaプログラムを実行しました。各Javaクラスは、乱数を持つユーザIDを生成し、ユーザコレクション内で無限ループでそれを探します。このような負荷では、クエリのレイテンシが60ミリ秒まで読み取られています。
スレッド数が3または4と少ない場合(ユーザーを見つけるためにユーザー収集5K /秒のクエリ負荷がある場合)、待ち時間はなく、2ms未満です。
なぜコレクションのユーザーを見つける負荷が増加するとレイテンシが発生するのか理解できませんでした。私は、mongo dbが私が何をしようとしているのか、パフォーマンスにそれほど影響を与えてはいけないのかを、より多くの並行して読むことができると信じています。
私の場合のように大きなクエリが1つのコレクションで実行されると、mongoがパフォーマンス上の問題を抱えていると思われます。シングルコレクションで1秒あたり10Kから20Kクエリが必要です。
あなたのご意見/ご提案をお待ちしております。
インデックスを使用していますか? MongoDBのどのバージョン? Javaでライブラリを使用していますか? (モクティアのような)またはMongoDBだけ? – inglor
このレイテンシーはどこで測定していますか?あなたのJavaアプリから? –