0

テストをロードしようとしているWebサービスがあります。サービスに接続してリクエストを行う複数のユーザーをシミュレートするスレッドを生成するプログラムを作成しました。各スレッドは、終了する前に「いくつかの」リクエストを行います。新しいリクエストはそれぞれ、準備が整うとすぐに作成されます。応答を取得してから次のリクエストを作成するまでの遅延はほとんどありません。テスト中の Web サービスは、同じサーバー上の別の Web サービスを呼び出します。

このプロセスは、最大 90 人のシミュレートされたユーザーまで正常に機能するようです。ただし、100 人のシミュレートされたユーザーを試してみると、合計で約 6 件のリクエストが処理された後にプログラムがハングします。彼らは何もしていないようです。シミュレートされたクライアントは応答を待ってハングし、Web サービスは要求を受信して​​いません。回復するにはサーバーの再起動が必要です。

何が起きてる?サーバーへの接続数に制限はありますか? 負荷を「ランプアップ」しようとする必要がありますか (今は、できるだけ速く起動しているだけです)。

私が使用しているサーバーはJava Caps 5.1.3アプリケーションサーバーであり、リクエストを行うために使用しているライブラリはHttpUnit 1.6.2です。


フォローアップの質問 立ち上げ時間の利点は何ですか? テストの開始時にすべての負荷をサーバーにプッシュできないのはなぜですか?

4

3 に答える 3

2

これには複数の原因が考えられることを確認してください。以下のアプローチを試して原因を突き止めることができます。彼らが助けてくれることを願っています:

1.ランプアップを使用する

適切なランプアップを使用してください。たとえば、少なくとも 1 ユーザー/2 秒などです。ランプアップを使用して問題が解決する場合は、間違いなく接続数の問題です。

2. コードレビュー

場合によっては未終了のループ/スレッドがないか、作成した負荷注入コードを十分に確認してください。

また、 JENSORなどのプロファイリング ユーティリティを使用して、どのメソッドがデッドロック状態になり、サーバーが応答しなくなっているかを調べることもできます。


また、Webサーバーでこれらのパラメーターを確認し、調整してテストします

  • 最大スレッド数
  • MaxProcesses
  • MaxSessionCount

フォローアップの質問に対する回答

ランプアップは実際のシナリオをシミュレートし、同時に Web サーバーに息抜きのスペースを与えます。負荷テストを行う場合、正確でスケーラブルな予測を得るために、パターンは実際の生活に似ている必要があります。

これを行う上で最も重要な役割を果たすパラメータは次のとおりです。

  • 増加
  • 思考時間
  • ペーシング白黒反復
  • トランザクション ミックス
  • 同時ユーザー数
于 2008-11-26T12:40:21.610 に答える
2

フォローアップの質問に対する回答

ランプアップは実際のシナリオをシミュレートすると同時に、Web サーバーに息抜きのスペースを与えます。負荷テストを行う場合、正確でスケーラブルな予測を得るために、パターンは実際の生活に似ている必要があります。

これを行う上で最も重要な役割を果たすパラメータは次のとおりです。

  • 増加
  • 思考時間
  • ペーシング白黒反復
  • トランザクション ミックス
  • 同時ユーザー数
于 2008-11-26T14:21:21.873 に答える
1

負荷テストにはJMeterを使用する必要があると思います。それはすべてのランプアップのものを持っています。 この PPT プレゼンテーションでは 2 つを比較しているため、どちらが自分に適しているかがわかります。

于 2008-11-26T12:57:34.570 に答える