2

バックエンドでMySQLを使用するPHPアプリケーションを作成しています。iOSアプリからのリクエストで、1秒間に約800人のユーザーがサーバーにアクセスすると予想しています。

このアプリケーションは、非常に単純なSELECTクエリ(場合によっては1つの結合)と、一度に1行しか挿入しない単純なINSERTクエリ(平均して1行あたり10kb未満のデータ)を実行する約8つのdiffrenetPHPスクリプトに分散しています。 )。SELECTSとINSERTSの間には約50/50の分割があります。

計画では、Amazon Web Servicesを使用し、EC2でアプリケーションをホストしてCPU負荷を分散し、RDS(MySQLを使用)でデータベースを処理しますが、RDSはスケールアウトせず、スケールアップするだけです。そのため、AWSソリューションにコミットする前に、開発サーバー(中規模のRDSソリューション仕様の100万マイルではない)でアプリケーションのベンチマークを行い、アプリケーションとMySQLが1秒間に処理できるリクエストの数を確認する必要があります(球場の数値の場合) -AWS自体で実際のベンチマークを実行する前。

EC2はCPU負荷を処理する必要があるため、PHP内でクエリのパフォーマンステストを行う必要があるだけだと思いますが、RDS(MySQL)がその多くのユーザーの下でどのように処理されるかを確認する必要があります。

この状況に対処する方法についてのアドバイスをいただければ幸いです。

前もって感謝します!

4

2 に答える 2

0

Apache Benchmark の使用を検討しましたか? ここで仕事をするべきです。また、包囲について良いことを聞いたことがありますが、まだテストしていません。

于 2012-07-27T08:16:43.097 に答える
0

1 秒あたり 800 ユーザー ヒットがある場合は、最初にシャーディングを検討することをお勧めします。最初にシャーディングを設計して実装すると、少数のホストから始めて、後で簡単にスケールアウトできます。1 つのサーバーのみを設計する場合、たとえ今のところ負荷を処理できるとしても、すぐにスケールアップする必要があり、アプリケーションが既に運用されているときにシャーディング アーキテクチャに切り替えるのははるかに複雑になります。

于 2012-09-19T16:12:12.417 に答える