1

私は API を開発しており、(もちろん) 同時ユーザー数に関してパフォーマンスを最適化したいと考えています。

Blitz を使用していくつかのテストを実行しました (私のアプリは Appfog、PHP、512MB、1 インスタンス上にあります)。これらのテストによれば、API は応答時間が長くなりすぎる (>1000 ミリ秒) 前に 11 人の同時ユーザーを処理できます。

私にとっては、驚くほど低いです。結果を改善するために RAM とインスタンスを追加することはできますが、私のコードはよりスマートになる可能性があると思います。

常に同じハードウェア構成でいくつかのテストを行いました。結果は、応答時間が 1000 ミリ秒を超える前の同時ユーザー数です。

  • 実際の API (db-queries を使用) を使用 --> 11 ユーザー
  • テキストを出力するだけのスクリプトを使用 (最小限の処理) --> 40 ユーザー
  • sleep(2) 関数を含むスクリプトを使用して長い応答時間をシミュレート --> 52 ユーザー ((2000 + 1000 ms) を超える前)
  • メモリを集中的に使用するスクリプトの使用 (for ループを使用したデータの構築): 95 ユーザー

結果に相関関係は見られません (各テストは何度も実行され、同様の結果が得られています)。スクリプトの処理が増えるほど、同時ユーザーが増える?

同時ユーザー数に影響を与えるものは何ですか (ハードウェア構成は別として)?

4

1 に答える 1

0

一般的に、次の 2 つの側面を考慮する必要があります。

  • データベースや外部 API などのボトルネック。あなたは最も遅いコンポーネントと同じくらい遅いです

  • 並行コードをシーケンシャルに変えるロックを探します。参照:アムダールの法則

2 番目のポイントは、最初のポイントに関連しています。データベースまたはコードで使用するものはすべて、内部で同期されているか、同時実行性にうまく対応していない可能性があります。

于 2013-01-16T14:26:38.277 に答える