3

私は実際にはAWSを初めて使用します。そして、2つのEC2インスタンスを設定しました。

1つはMongoDBデータベース用で、もう1つはアプリケーション用です。

接続にはpymongoを使用しています。ただし、毎回インスタンスを介してデータを送信すると、時間がかかりすぎます。パフォーマンスを向上させるために、グループを使用して、アプリケーション1のローカルホストとしてmongoDBインスタンスを使用できるかどうかを知りたいのですが、わかりません。

または、データベースをアプリケーションと同じインスタンスに配置して、より多くのEBSを取得する方がよい場合。

4

2 に答える 2

3

パフォーマンスのボトルネックがどこにあるかを知っていることを確認してください。

両方のインスタンスが同じアベイラビリティーゾーンにある場合、ネットワーク遅延が最大のパフォーマンスの問題になることはありません。実際、NICが優れているために、少なくとも大規模なインスタンスがある場合は、ネットワーク遅延は問題になりません。

確実に知るために、監視ツールを使用してネットワーク使用率を測定してください。

ワーキングセット(任意の頻度で使用されるMongoDBドキュメント)のいずれかがインスタンスのRAMに収まらない場合は、EBSにアクセスしていることを意味します。EBSは、 MongoDBが必要とするものと比較して非常に低速です。最近、 iozoneを使用して単一のEBSボリュームを測定したところ、EBSボリュームはラップトップの回転式ハードドライブの半分の速度であることがわかりました。

複数のEBSボリュームをソフトウェアRAID構成に ストライピングすることにより、EBSのパフォーマンスを大幅に向上させることができます。

AWSでMongoDBを実行する場合の結論は、任意の頻度でアクセスするMongoDBドキュメントを保持するのに十分なRAMが必要であるということです。

于 2012-07-17T19:13:01.983 に答える
0

Webサーバーと同じマシン上でmongodbインスタンスを使用する本番環境のアプリケーションがあります。私にとっては問題なく動作しますが、現時点ではスケーラビリティは必要ありません。1つのインスタンスで十分です。

したがって、質問に答えるには、ローカルホストとして実行できることを確認してください。

ただし、アプリが起動し、複数のインスタンスやシャーディングなどが必要な場合は、他のマシンにもインスタンスをデプロイする必要があります。

于 2012-07-17T19:17:06.387 に答える