2011-12-20 21 views
-1

Webアプリケーション(Java、Struts、Spring、Java EE)の負荷テストを行っています。結果は、サーバーに送信された11,000の奇妙な要求のうち、わずか1500の奇数のパススルーを示しています。それらのほとんどはSocketExceptionをスローしません。Webアプリケーションの負荷テスト

これが発生する可能性がある理由は何ですか?

アプリケーションをどこから見て修正するかわかりません。

+0

同時トランザクションの数に制限がありますか?私は以前にそれを持っていただけで、パラメータの変更が必要でした。 –

+0

スタックトレースはあなたに何を伝えますか? – rkb

答えて

2

あなたのサーバーを圧倒している可能性があります。オペレーティングシステムでは、保留中の接続の境界キューのみが維持され、アプリケーションには着信接続を処理するスレッドが限られていることがほぼ確実です。

私はあなたが持っているアイドル処理スレッドの数とオペレーティングシステムキューにある保留中の接続の数を記録することをお勧めします。アイドル状態のスレッドが常にゼロで、OSキューが最大値またはそれに近い値を常に保持している場合は、ハードウェアおよび/またはソフトウェアおよび/またはデータベースの限界に達していることがわかります。

オペレーティングシステムのCPUとI/O負荷のメトリックも監視する必要があります。それはあなたのボトルネックがどこにあるかを絞り込むのに役立ちます。 CPUを最大限に使い果たしていないにもかかわらず、I/O待ち時間が多い場合は、I/O操作を最適化する必要があります。一貫して100%CPUにヒットした場合は、コードをより効率的にするか、ハードウェアをより多く投げる必要があります。また、ガベージコレクタを監視する必要があります。回転が開始されるとパフォーマンスが低下するためです。

パフォーマンスチューニングは難しいです。あなたは本当に測定することについて非常に注意する必要がありますが、CPU負荷、I/O待ち時間、ネットワークアクティビティ、メモリ消費は良いスタートです。

関連する問題