2012-05-14 19 views
5

Nettyを使用して単純なTCPサーバーを構築しましたが、JMeterでベンチマークしたいと思います。私はバイトを送信するためにBinaryTCPClientImplクラス名を使用して、JMeter TCPサンプラーを使用しています。私は、 "遅延なし"と "再接続"をチェックしました。私はこれらがSO_NODELAYとSO_REUSEADDRのためだと仮定します。私は75のスレッドを実行しており、それぞれ1000のTCP要求を行っています。私は「接続を再利用」、すべての75000株の要求をオフにした場合、ソケットの書き込みエラーNetty + JMeter、接続を再利用する際のエラー

:接続アボートの原因となったソフトウェア:

500 java.net.SocketExceptionが:私は一貫して要求の約11%がで失敗見ます単一のエラーを発生させることなく成功しますが、スループットはその33%にすぎません。

これらのエラーを防ぐためにNettyサーバーと何か関連がありますか?

答えて

0

私のサーバーは次のように動作することに注意してください。接続の受け入れ、データの受信、データの送信、データの送信後の接続の切断。 JMeterのドキュメントでは、「再使用ソケット」がチェックされていない限り、TCPサンプラーが接続を閉じてしまうので、SO_REUSEADDRではないと思います。私は、クライアントがデータを送信し、データを受け取り、サーバがソケットを閉じる前に、クライアントが再びデータを送信しようとすると、サーバはソケットを閉じ、JMeterは要求が失敗したと考えます。

解決策は、「再利用アドレス」をチェックしないことです。私のクライアントが相対的に頻繁に通信しないので、ソケットごとに要求を閉じることが予想されます。

+0

これはおそらくあなたの元の質問に追加する必要があります:) – Daan

+0

私はそれは答えだと思います。 – NateS

関連する問題