我目前正在调查一个问题,我们怀疑由于太多的传出连接造成的端口耗尽是一个因素。 我希望能够确定服务器何时处于或靠近端口耗尽,似乎应该有一个wmi计数器,这将表明这一点,虽然我不知道哪个
提前致谢。
要获得当前活动的连接数你可以Powershell它:
$a=gwmi -class Win32_PerfFormattedData_Tcpip_TCPv4 |select ConnectionsEstablished $a.ConnectionsEstablished
请注意,在同一个类中还有一个ConnectionsActive,它显示累计连接数而不是当前连接数。 这是一个类的参考 。
正如本MSDN博客文章中详细介绍的那样,当客户端端口耗尽成为威胁时,可以使用两种系统调整来提高系统容忍度:
[ 开始引用 ]
增加dynamic分配给客户端TCP / IP套接字连接的临时端口的上限范围。
浏览到,然后在registry中单击下面的项:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
在Edit菜单上,单击New , DWORD Value ,然后添加以下registry值以增加可以通过dynamic分配给客户端的短暂端口数:
数值名称 MaxUserPort
数值数据 <Enter a decimal value between 5000 and 65534 here>
您必须重新启动计算机以使此更改生效。 增加用于客户端TCP / IP连接的临时端口的范围会消耗Windows内核内存。 不要将此设置的上限增加为高于容纳客户端应用程序套接字连接所需的值,以尽量减less不必要的Windows内核内存消耗。
将客户端TCP / IP套接字连接超时值从默认值240秒减less
浏览到,然后在registry中单击下面的项:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
在Edit菜单上,单击New , DWORD Value ,然后添加以下registry值,以减less连接closures时连接停留在TIME_WAIT状态的时间长度。 当连接处于TIME_WAIT状态时,套接字对不能被重用:
值名称 TcpTimedWaitDelay
数值数据 <Enter a decimal value between 30 and 240 here>
您必须重新启动计算机以使此更改生效。 该值的有效范围是30到300(十进制)。 默认值是240。
[ 结束引用 ]