windows server 2008 如何关闭 CLOSE_WAIT 状态的连接

单位里有一台服务器,会出现很多条的
协议 本地地址 外部地址 状态 PID
TCP 192.168.129.5:20018 192.168.130.3:62334 CLOSE_WAIT 7964
在 xp 系统下,这种情况可以通过
解决方法如下:
1.打开CMD.
cmd
2.查找端口号的PID
netstat -a -o
3.强行关闭
ntsd -c q -p PID(查询出来的PID号码)
来解决,但windows server 2008 将ntsd 拷过来,也报Microsoft (R) Windows Debugger Version 6.1.7600.16385 X86
Copyright (c) Microsoft Corporation. All rights reserved.
Cannot debug pid 10124, NTSTATUS 0xC00000BB
"不支持该请求。"
Debuggee initialization failed, NTSTATUS 0xC00000BB
"<Unable to get error code text>"
有没有其他办法,在不重启服务器的情况下关闭那些 CLOSE_WAIT 的连接。

第1个回答  2013-06-29
参考一下:
解决CLOSE_WAIT的方法:
1 一般原因都是TCP连接没有调用关闭方法。需要应用来处理网络链接关闭。
2 对于Web请求出现这个原因,经常是因为Response的BodyStream没有调用Close.
比如Widnows下:
使用HttpWebRequest 一定要保证GetRequestStream和GetResponse对象关闭,否则容易造成连接处于CLOSE_WAIT状态
3 TCP的KeepLive功能,可以让操作系统替我们自动清理掉CLOSE_WAIT的连接。
但是KeepLive在Windows操作系统下默认是7200秒,也就是2个小时才清理一次。往往满足不了要求。可以调小该数值。
Windows下的调整方法为
HKEY_LOCAL_MACHINE/CurrentControlSet/Services/Tcpip/Parameters下的以下三个参数:
KeepAliveInterval,设置其值为1000
KeepAliveTime,设置其值为300000(单位为毫秒,300000代表5分钟)
TcpMaxDataRetransmissions,设置其值为5
Close_Wait引发的问题:
Close_Wait会占用一个连接,网络可用连接小。数量过多,可能会引起网络性能下降,并占用系统非换页内存。 尤其是在有连接池的情况下(比如HttpRequest)
会耗尽连接池的网络连接数,导致无法建立网络连接
----引自红黑联盟的《TCP的状态兼谈Close_Wait和Time_Wait的状态》本回答被提问者采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网