2016-10-29 68 views
1

.NET WebアプリケーションをテストするためにjMeterを使用するのに苦労しています。私はAzureのステージング環境に対してjMeterをローカルで実行しています。一部のエンドポイントを打つ、私が手:私に語っ高負荷要求でApache jMeterがエラーになりました - java.net.ConnectException:接続がタイムアウトしました:connect

java.net.ConnectException: Connection timed out: connect 

それはない私のアプリによって引き起こされる私の側で起こって何かが、です。私のアプリはエラーを表示せず、簡単にこの大きさでリクエストを処理しています。

この特定のテストでは、3回繰り返される10秒のランプアップを持つスレッドが300個あります。

さらに診断するにはどうすればよいですか?クライアント側に何らかの制限が課せられていますか?

+0

1. 300を実行する前に1,10,100のスレッドを正常に実行できますか? 2.このエラーはすべてのリクエストで発生するのでしょうか? –

+0

@ KirilS.yes、はい、はい。ちょうどいくつか。 – SB2055

+1

そのような場合は、使用可能なポートが使い果たされている可能性があり、クライアントがポートを待つことがあり、時にはタイムアウトすることがあります。 2つのJMeterホストから150 + 150クライアントを実行することで確認できます。それがうまくいくなら、それはもっと可能性が高い。 Windowsの場合は、レジストリの変更を行うことから始めます(この記事ではTIME_WAITに関連しています):https://msdn.microsoft.com/en-us/library/aa560610(v=bts.20).aspxビズトークについては、実際には他のポートの枯渇にも適用されます)。 Linuxでは、同様のプロセスがここに記述されています:http://www.lognormal.com/blog/2012/09/27/linux-tcpip-tuning/。 –

答えて

1

JMeterのデフォルト設定は、高負荷の生成には適していません。テストの開発とデバッグにのみ使用できます。負荷テストを実行する場合は、少なくともJava Heap SpaceをJMeterに割り当てる必要があります(デフォルトでは512Mbにすぎません。このページを読むために使用しているブラウザは2倍も消費します)。

また、多少の負荷が発生したときにJMeter GUIが情報を正しく表示するように設計されていないため、non-GUI modeでテストを実行する必要があります。

詳細情報:


私はまた、テスト中にロード・ジェネレータの健康に目を保つ示唆してCPUに関する情報を収集し、RAMうスワップ、ディスク、ネットワークの使用状況、ヒープ使用量、ガベージコレクションなどのJVMメトリックなどが含まれているため、JMeterインスタンス十分なヘッドルームw.r.tがある場合、eは十分に設定されています。 hadrwareリソースなどを含むことができます。もちろん、サーバ側で行うことは必須です。 PerfMon JMeter Pluginを使用して、この情報を収集し、結果を他のテスト測定基準とともにプロットすることで、値を相関させて原因を特定することができます。プラグインの設定と使用方法については、How to Monitor Your Server Health & Performance During a JMeter Load Testを参照してください。

関連する問題