2011-11-30 10 views
1

내 웹 응용 프로그램에서 최대 절전 모드 연결이 제대로 닫히지 않는 문제를 발견했습니다. 웹 응용 프로그램의 복잡성을 감안할 때 적어도 15 - 30 일이 소요됩니다.CLOSE_WAIT 상태로 TCP 연결을 종료하는 방법

그동안 나는 수동으로 연결을 닫고 싶었습니다.

그런 식으로 다시 시작한 바람둥이없이이 연결을 닫을 수 있습니까? 이 연결 풀을 종료하는 데 사용할 수있는 명령이 있습니까?

나는 톰캣 5.5과 MySQL의 5.5를 실행

#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 해결하기 위해, 최대 절전 모드 설정에서 오류를 발견했다.

+1

"하지만 웹 애플리케이션의 복잡성을 감안할 때, 그것은 적어도 15 -30 일이 소요"- 아니이 아무것도 없다 응용 프로그램 (코드)의 복잡성과 관련이 있습니다. – symcbean

+0

바로이 버그는 * 버그이며 * 수정해야합니다. – EJP

답변

1

항상 socket.close()으로 전화하십시오. how to close JDBC resources properly every time을 참조하십시오. 서버를 해결할 수없는 경우

/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

ndd는 솔라리스의 유용성이며, centos는 어디에 있습니까? –

+0

'/ sbin/sysctl'? http://klaver.it/linux/sysctl.conf –

+0

sysctl -w net.ipv4.tcp_close_wait_interval = 1500 오류 : "net.ipv4.tcp_close_wait_interval"은 알 수없는 키입니다. –

0

내가 지금 찾을 수없는 다른 질문이있었습니다. 하지만 killcxcutter을 사용해보세요. 커터에 대한 링크를 찾을 수 없지만 debian repos에 있습니다. 같은 이름의 유닛 테스트 프레임 워크가 아니라 TCP 연결 킬러를 선택하십시오.

갱신 : 윈도우의 버전있을 것 같습니다 wkillcx 갱신 2 : 커터 링크에 대한 감사 시옹 Chiamiov

+1

http://www.digitage.co.uk/digitalage/software/linux-security/cutter –

관련 문제