7

負荷テストにJMeterを使用しています。分散JMeterテストケースのスレッド数を増やしてテストを開始するだけで、Webサーバーが処理できる同時スレッド(ユーザー)の最大数を見つけて演習を行っています。

次に、MAX数は有用かもしれませんが、のWebサイトが実際に処理する実際のユーザー数は、テストを実りあるものにするために必要な数であることに気付きました。

セットアップに関するいくつかの情報を次に示します。

  • これは、.NET /ClassicASPの混合サイトです。ログインすると、両方のユーザーのブラウザセッション(タイムアウトあり)が作成されます。
  • 各セッションは60分後にタイムアウトします。

この情報、IISログ、パフォーマンスカウンター、および/または本番サイトで処理する同時ユーザーの平均数を決定するのに役立つ計算を使用する方法はありますか?

4

3 に答える 3

4

QUANTIZE関数でlogparserを使用して、適切な間隔でのリクエストのピーク数を判別できます。

10秒のウィンドウの場合、次のようになります。

logparser "select quantize(to_localtime(to_timestamp(date,time)), 10) as Qnt,
    count(*) as Hits from yourLogFile.log group by Qnt order by Hits desc"

報告されるカウントはスレッドやユーザーとまったく同じではありませんが、正しい方向を示すのに役立つはずです。

正確なカウントを行うための最良の方法は、おそらくパフォーマンスカウンターを使用することですが、標準のカウンターが希望どおりに機能するかどうかはわかりません。おそらく、カスタムカウンターを作成する必要があります。

于 2012-02-22T04:26:01.780 に答える
3

ここにいくつかのオプションがあります。

  1. パフォーマンスモニターを使用して現在の数値を取得するか、1日中ログに記録して平均を取得します。ASP.NETには、RequestsCurrentカウンターがあります。このページによると、 Classic ASPにも現在のリクエストがありますが、私自身はこれを使用したことがありません。

  2. ログパーサーを介してIISログを実行し、リクエストの総数とそれぞれにかかった時間を取得します。1時間に何件のリクエストがあり、それぞれにどれくらいの時間がかかったかを知っていれば、同時に実行されていたリクエストの平均を取得できると思います。

また、同時ユーザーはサーバー上の同時スレッドとまったく同じではないことに注意してください。1つは、画像などのコンテンツがダウンロードされている間、ユーザーごとに複数のスレッドがアクティブになります。その後、サーバーがアイドル状態のときに、ユーザーは数分間ページを表示します。

于 2012-02-09T16:29:34.133 に答える
2

私の提案は、最初に停止条件を定義することです。

  • 最大CPU使用率
  • 最大メモリ使用量
  • リクエストの最大応答時間
  • あなたが好きな他の重要なパラメータ

パラメータを選択することは本当に主観的であり、私は個人的にそれについて多くの経験を提供することはできません。

次に、パフォーマンスカウンターまたはIISログがパラメーターにマップできるかどうかを確認できます。次に、適切なマッピングを設定します。

3番目に、Nユーザー(スレッド)をシミュレートしてテストを開始し、停止条件が満たされるかどうかを確認できます。ヒットしなかった場合は、より高い番号に移動できます。ヒットした場合は、より小さな数を使用できます。再帰的に、大まかな数が見つかります。

ただし、これは、現実のWebサイトが非常に多くのユーザーを利用できることを意味するものではありません。これまでのところ、すべてのエッジケースをカバーできるシミュレーションはありません。

于 2012-02-22T05:45:23.173 に答える