2011-12-24 2 views
4

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クエリが必要です。

あなたのご意見/ご提案をお待ちしております。

+0

インデックスを使用していますか? MongoDBのどのバージョン? Javaでライブラリを使用していますか? (モクティアのような)またはMongoDBだけ? – inglor

+1

このレイテンシーはどこで測定していますか?あなたのJavaアプリから? –

答えて

0

いくつかの情報が不足しています - ディスク構成は何ですか?すべてがディスクに保存されている場合、EBSはレイテンシに影響を与える可能性があります。

Amazonは、EC2にmongoをインストールする方法に関するベストプラクティスのホワイトペーパーを公開しました:MongoDB on AWSここではその説明は

だこのホワイトペーパーでは、すべての主要なNoSQLのシステムに適用される一般的なベストプラクティスの概要を提供し、人気のNoSQLシステムのいずれかを浮き彫りに - MongoDBは - と最高のAWSクラウド上でそれを実行する方法について説明します。さらに、さまざまなMongoDB構成を調べることで、パフォーマンス、耐久性、およびセキュリティを最適化することができます。

関連する問題