2016-04-19 19 views
3

Azureに公開されているASP.NET Web APIアプリ(モバイル向けバックエンド)があります。ほとんどのリクエストは軽量で処理が速いです。しかし、すべてのクライアントは、モバイルアプリケーションとのあらゆる対話において、多くの要求を行い、それを迅速に実行します。HTTPリクエストの処理数を増やすにはどうすればよいですか?

問題は、Webアプリケーションが小さな(10 /秒)リクエストを処理することができないことです。 HTTPキューの成長はCPUには影響しません。

私は250リクエスト/秒で平均負荷テストを実行し、平均応答時間は〜200msから5sに伸びました。

おそらく私のコードに問題がありますか?それともハードウェアの制限ですか?一度に処理された要求の数を増やすことはできますか?

Statistic for few active users

Http requests queue

CPU and Memory

答えて

0

まずそれは本当に(あなたが小さく、余分な小さなインスタンスを使用する場合、特別に)あなたが何のインスタンスを使用しない事項、どのように多くの場合、あなたが使っています - いけない、あまりにも期待サーバ上の1コアと2Gb RAMからの多くです。

キャッシング(WebApi.OutputCache.V2)を使用すると、サーバー処理の負担を軽減し、Azure Redis Cacheを高速キャッシュストレージとして使用できます。また、データベースもボトルネックになります。

さらに2つのインスタンスをサーバーに追加してキャッシュした後も同じ結果が得られる場合は、コードを調べてそこにボトルネックを見つける必要があります。

これは一般的な推奨事項であり、質問にはコードはありません。

+0

インスタントタイプの1秒あたりの平均リクエスト数はありますか?今度は、1秒あたりのリクエストについて、1つのS2インスタンス(2コア、3.5ギガビット・ラム) –

+0

を使用します。サーバーで負荷テストを実行しようとすると、Visual Studioオンライン負荷テスト(.jmx)あなたのローカルマシンから - 時間が間違っている可能性があります - あなたのインターネット接続がボトルネックかもしれません。 – Vladimir

+0

もう1つのインスタンスを追加し、負荷テストを見てみましょう。ただし、Jmeter *を使用してローカルではなく、クラウド(Visual Studio Online Load Tesingのような)からサーバーをテストすることが重要です。 – Vladimir

関連する問題