質問: java.net.ConnectException:接続が拒否されました:負荷の下で接続 私はブランドの新しいWindows 2008 64ビットマシンでロードテストを実行しています。 ローダーは、HttpURLConnectionを使用してServerSocket.accept()をリッスンしているサーバーにリクエストを送信するJavaアプレットです。ローダーとサーバーの両方が同じマシン上で実行されています。 私の古いWindows 2003サーバーでは、この構成を使用して1000人以上のユーザーをロードできました。 しかし、新しいサーバーでは、400セッションをロードすると、ローダーは次の例外をスローします。 ``` java.net.ConnectException: Connection refused: connect at java.net.DualStackPlainSocketImpl.connect0(Native Method) at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:69) at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:337) at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:198) at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:180) at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:157) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:391) at java.net.Socket.connect(Socket.java:579) at java.net.Socket.connect(Socket.java:528) at sun.net.NetworkClient.doConnect(NetworkClient.java:180) at sun.net.www.http.HttpClient.openServer(HttpClient.java:388) at sun.net.www.http.HttpClient.openServer(HttpClient.java:483) at sun.net.www.http.HttpClient.(HttpClient.java:213) at sun.net.www.http.HttpClient.New(HttpClient.java:300) at sun.net.www.http.HttpClient.New(HttpClient.java:316) at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:992) at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:928) at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:846) at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1087) ... ``` サーバーやマシンのリソースが不足しているかのように見えます。 ServerSocketのバックログは256に設定されており、使い果たされていないように見えます。 マシンのCPU使用率は10%未満で、サーバーには十分なメモリがあります。 Visual VMを使用してクライアントとサーバーを観察すると、問題の時点で両方が正常に機能しているように見えます。 何か案は ?
回答: サーバーが他のリソースが不足しているために接続を拒否している可能性がありますか?各HTTP要求は、TCP接続を開く必要があります.Linuxでは 'file'を使用しています(私はLinuxの専門家ではありませんので、私が間違っている場合は修正してください)。したがって、CPUとメモリが低い場合もありますが、HTTPサーバーは何百ものファイルを開き、最終的にはエラーが発生し、それ以上の要求は拒否されます。 私はこれがWindowsにも当てはまるのかどうかは分かりませんが、それに一撃を与えます。