-1

Azure webrole の一部として、非常に単純な MVC4 post アクションがあります。

[HttpPost]
    public ActionResult Index(Request request)
    {
        return new JsonResult() 
        { 
            Data = "OK", 
            JsonRequestBehavior = JsonRequestBehavior.AllowGet 
        };
    }
  1. Webrole を Azure にデプロイしました。
  2. ベンチマーク (ab.exe) を使用したところ、たとえば 25 の同時要求が 1 秒以内に処理されることがわかりました。
  3. ここで、新しい webrole インスタンスを追加してスケールアウトしたいので、+25 の同時ユーザーも 1 秒の遅延で満足できると予想しています。
  4. もう一度 becnhmark を実行したところ、結果は 1 つの webrole インスタンスの場合と同じでした。

PS 無料の Azure サブスクリプションがあります。Webrole の VM サイズは小さいです。

新しい Webrole インスタンスを追加しても、Web サービスの容量が増えないのはなぜですか? 私はいくつかの設定を逃したか、それとも何ですか?

4

1 に答える 1

3

25 人の同時ユーザーの場合、どのような変更が予想されますか?

より多くのインスタンスでスケールアウトするという考えは、少数のユーザーをより速く処理するためではなく、より多くの同時ユーザーを処理することです...

エッジケースをテストすることをお勧めします-1000同時ユーザーなど、単一のインスタンスで飽和点を見つけます。単一のインスタンスが546同時ユーザーを安全に処理できると仮定します。インスタンスの数を増やし、100同時ユーザーでテストをウォームアップします。1000同時ユーザー数を増やします。あなたのサービスは1000、ただではなく、同時ユーザーをうまく処理するようになりました546か...これは、インスタンスを追加するという考えです...

すべての虚数。

アップデート

興味深いことに、あなたは次のものを使用すると言います:

ab -n 25 -c 25 -p json.file -T "アプリケーション/json; charset=utf-8" xxxxx.cloudapp.net

ドキュメントから:

-c concurrency 一度に実行する複数の要求の数。デフォルトは一度に 1 つの要求です。

-n requests ベンチマーク セッションで実行する要求の数。デフォルトでは、単一のリクエストのみを実行するため、通常、代表的なベンチマーク結果は得られません。

25 の同時リクエストのみを実行した場合、どのような結果になると予想されますか? 次のパラメータを使用することをお勧めします。

ab -n 150 -c 1000 -p json.file -T "アプリケーション/json; charset=utf-8" xxxxx.cloudapp.net

そして、結果をもう一度確認してください!

于 2013-05-24T19:59:56.697 に答える