Как убить TCP соединение с состоянием CLOSE_WAIT - PullRequest
1 голос
/ 30 ноября 2011

Я обнаружил проблему в своем веб-приложении, соединения гибернации не закрываются должным образом.но учитывая сложность веб-приложения, это занимает не менее 15 - 30 дней.

Тем временем я хотел вручную закрыть соединение.

Таким образом, я могу закрыть это соединение безперезапустить кота?Есть команда, которую я могу использовать для уничтожения этого пула соединений?

Я обнаружил ошибку в конфигурации гибернации, чтобы решить

#netstat -anp |grep 3306 |grep CLOSE_WAIT
tcp        1      0 ::ffff:172.18.11.4:50750    ::ffff:172.18.11.8:3306     CLOSE_WAIT  4203/java           
tcp        1      0 ::ffff:172.18.11.4:36192    ::ffff:172.18.11.8:3306     CLOSE_WAIT  4203/java           
tcp        1      0 ::ffff:172.18.11.4:36215    ::ffff:172.18.11.8:3306     CLOSE_WAIT  4203/java           
tcp        1      0 ::ffff:172.18.11.4:36211    ::ffff:172.18.11.8:3306     CLOSE_WAIT  4203/java           
tcp        1      0 ::ffff:172.18.11.4:57820    ::ffff:172.18.11.8:3306     CLOSE_WAIT  4203/java           
tcp        1      0 ::ffff:172.18.11.4:36213    ::ffff:172.18.11.8:3306     CLOSE_WAIT  4203/java           
tcp        1      0 ::ffff:172.18.11.4:36159    ::ffff:172.18.11.8:3306     CLOSE_WAIT  4203/java 

и т.д ....

CentOS 6.0 под управлением Tomcat 5.5 и Mysql 5.5.

Ответы [ 2 ]

1 голос
/ 30 ноября 2011

Всегда звоните socket.close(). См. Также , как правильно закрывать ресурсы JDBC каждый раз .

Если вы не можете исправить сервер, добавьте следующие строки до /etc/init.d/inetinit

/usr/sbin/ndd -set /dev/tcp tcp_close_wait_interval 1500
/usr/sbin/ndd -set /dev/tcp tcp_keepalive_interval 1500

и перезагрузите компьютер. Согласно http://www.experts -exchange.com / OS / Unix / Solaris / Q_20568402.html

В качестве альтернативы, в Linux попробуйте tcpkill (часть dsniff) или cutter.

0 голосов
/ 17 ноября 2012

Был еще какой-то вопрос по этому поводу, который я не могу найти сейчас.Но вы можете попробовать killcx и cutter . Я не могу найти ссылку на cutter, но она найдена в репозиториях Debian.Удостоверьтесь, что выбрали убийцу tcp-соединений, а не среду модульного тестирования с тем же именем.

update: похоже, что версия для Windows wkillcx update2: спасибо Xiong Chiamiov за ссылку резака

...