java.net.ConnectException: соединение отказано: подключиться под нагрузкой - PullRequest
1 голос
/ 06 февраля 2012

Я запускаю тестирование загрузки на новой 64-битной машине с Windows 2008.Загрузчик - это Java-апплет, который использует HttpURLConnection для отправки запросов на сервер, который прослушивает ServerSocket.accept (), и загрузчик, и сервер работают на одном компьютере.

На моем старом сервере 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.<init>(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, и похоже, что она не исчерпывается.Загрузка ЦП компьютера составляет менее 10%, а на сервере достаточно свободного пространства.Наблюдая за клиентом и сервером с помощью Visual VM, кажется, что оба функционируют должным образом во время проблемы.Есть идеи?

Ответы [ 2 ]

0 голосов
/ 06 февраля 2012

В 2008 году были наложены некоторые дополнительные ограничения, которые не были частью предыдущих версий. Я бы начал здесь ... http://technet.microsoft.com/en-us/magazine/2007.12.network.aspx

0 голосов
/ 06 февраля 2012

Может быть, сервер отклоняет соединения из-за отсутствия других ресурсов? Каждый HTTP-запрос требует открытия TCP-соединения, которое в Linux использует «file» (я не эксперт по Linux, поэтому, пожалуйста, исправьте меня, если я ошибаюсь). Так что иногда ЦП и память невелики, но HTTP-сервер открывает сотни файлов, что в итоге приводит к сбою, и любой дальнейший запрос будет отклонен.

Я не уверен, относится ли это и к Windows, но попробуйте.

...