2

私たちの Java アプリケーションは、クライアントとサーバーで構成されています。私たちの実稼働環境では、接続の確立に長い時間がかかります (~40 秒)。

tcpdump を使用してネットワーク トラフィックをキャプチャしたところ、接続が確立されたときに次のパケットを確認できます。

start                  client > server SYN
2 milliseconds later   server < client SYN,ACK
38 *seconds* later     client > server ACK

他の環境では、3 つのパケットすべてがほぼ瞬時に発生します。

38 秒の遅延の原因、またはそれを診断するための手順を提案できる人はいますか? これは運用環境であるため、診断コードを変更することは難しいことに注意してください。

ここに私たちの環境に関するいくつかの詳細があります:

  • クライアントは、内部で java.nio.channel.SocketChannel.connect(..) を使用するApache Mina 1.0.1 のSocketConnector を使用します。
  • クライアントは IBM WebSphere 7.0.0.17 内で実行されています
  • Java バージョン = 1.6.0、Java コンパイラ = j9jit24、Java VM 名 = IBM J9 VM
  • OS は AIX、バージョン 6.1
4

1 に答える 1

1

記述子が不足していませんか、および/または TCP 受け入れキューがいっぱいですか?

于 2012-07-11T14:52:02.093 に答える