2009-07-07 15 views
0

Webアプリケーション(ASP.MVCテクノロジを使用)の負荷テストにVisual Studio Team System 2008 Team Suiteを使用します。Visual Studio 2008を使用した負荷テスト:分析結果のトラブル

負荷パターン:定数(これは、常に一定量の仮想ユーザーが常駐していることを意味します)。 私は、実際にストレス状態で私のWebアプリケーションのパフォーマンスを分析するために、1000人のユーザーを指定します。アプリケーションでいくつかの変更を加えながら同じ負荷テストを複数回実行します。

負荷テストの結果を分析すると、私は奇妙な依存関係に陥ります。平均ページ応答時間が長くなると、1秒あたりの要求数も増えます。逆:平均ページ応答時間が短い場合、この状況は、ユーザーの量が少ない場合(5〜50人のユーザー)は再現されません。

どのようにそのような結果を説明できますか?

+0

負荷テスターを別のコンピューターで実行していますか? –

+0

リモートPCとVS Team Systemでテストをロードして自分のPCでテストを実行するWebアプリケーションがあります。また、私はVS Test Load Agentの試用版を使用しようとしました。これは、別のproduct.Itは、1つのテストコントローラと多くのリモートエージェントで構成されたテストリグを作成することができます。しかし、コントローラとエージェント間の接続は安定していないこのツールを使用してください。理由は私が試用版を使用しているということです.VSテスト負荷エージェントを使用している場合は、あなたのコメントと意見を感謝します。ありがとう –

答えて

3

おそらく、ここでは「要求/秒」という用語に誤解があります。 Requests/Secは、テストがアプリケーションにプッシュされているリクエスト数(1秒あたりに完了したリクエスト数ではありません)を表しています。

このようにすれば、これは意味をなさないかもしれません。

高いリクエスト/秒は、応答時間(どこかのボトルネック、すなわちCPUバウンド、メモリバウンドまたはIOバウンドのため)。

あなたのRequests/Secが上がってメモリにたくさんのオブジェクトがあると、メモリが圧迫されているため、応答時間が遅くなるガベージコレクションが起動されます。

リクエスト/秒が上がってCPUが叩かれてしまった場合は、CPU時間を待たなければならない可能性があります。

リクエスト/秒が上がるにつれて、SQLが適切に調整されず、ブロッキングとデッドロックが発生し、応答時間が長くなります。

これらは、これらの相関が表示される理由の例です。

+0

問題は私のテスト構成がすべて同じ時間です負荷テストを実行するたびに、テストがアプリケーションにプッシュする要求の数は同じです)。したがって、アプリケーションの変更によってページレスポンス時間が長くなった場合、テスト時間が長くなり、リクエスト/秒が少なくなるはずです。 –

+0

なぜ私は同じテストを実行し、ページの応答時間が長い場合、Request/secが上がるのですか?あなたが仮想ユーザの量を変えてしまえばあなたの答えは正しいかもしれません。しかし私は負荷テストの設定を変更しません。 –

0

レンダリングエンジンの負荷テスト[NDjango]この問題についてもう少し詳しく説明します。標準のASP.NET aspxに対する[1]。負荷テストに使用しているWebアプリケーションは非常に基本的です.2つの静的ページで構成されています。データベースはなく、重い処理はせず、レンダリングだけです。私たちが見ているのは、予想される平均応答時間aspxの点ではかなり高速ですが、驚いたことに、1秒あたりのリクエスト数とテスト期間中の要求総数はずっと少なくなっています。 私たちがテストしているものとは別に、Jimmyの意見では、リクエスト率が高いほど多くの点でサーバーが邪魔になることに同意します。しかし、これが応答時間を上げる原因になると私は理解しています。 サーバ上で何が起きているかを実際に反映している数字が表示されている場合、このルールがどのように壊れるかはわかりません。今のところ私が持っている唯一の説明は、数値が歪んでいるということです。ツールを構成する方法が間違っています。

[1]:http://www.ndjango.org NDjango

+0

テストマシンに使用する仮想ユーザーが多すぎます。より多くのテストマシンを追加するか(ユーザーエージェントのライセンスが必要)、仮想ユーザーの数を減らしてください。 – Nat

0

ユーザの数を使用して、秒あたりの要求のより高い番号でサーバをロードします増加する。これは、正常な結果です。どんなサーバーでも、毎秒より多くのリクエストを処理するのに時間がかかります。つまり、平均ページ応答時間が長くなります。

リクエストは、アプリケーションに適用される負荷の尺度であり、平均ページ応答時間は、高い数値=応答が遅いアプリケーションのパフォーマンスの尺度です。

負荷が徐々にサーバーに適用される段階的なユーザー数またはウォームアップ時間を使用する方がよいでしょう。

また、1台のテストマシンで1000人の仮想ユーザーがいる場合、テストマシンのCPUは完全に最大限になります。これはテストの結果を歪めている可能性が最も高いでしょう。仮想ユーザーの数を試してみると、1秒あたりのリクエスト数が最大になるということがわかります。仮想ユーザーを追加または削除すると、アプリからの1秒あたりのリクエスト数が少なくなります。

関連する問題