~.qTp.~ 好久不见~~~ Hey dude @ Long time no see ·^o^·

TCPIPtimeDelay

上一篇 / 下一篇  2011-03-22 15:16:53 / 个人分类:Load&Runner

TcpTimedWaitDelay

描述:

确定 TCP/IP 可释放已关闭连接并重用其资源前,必须经过的时间。关闭和释放之间的此时间间隔通称 TIME_WAIT 状态或两倍最大段生命周期(2MSL)状态。此时间期间,重新打开到客户机和服务器的连接的成本少于建立新连接。减少此条目的值允许 TCP/IP 更快地释放已关闭的连接,为新连接提供更多资源。如果运行的应用程序需要快速释放和创建新连接,而且由于 TIME_WAIT 中存在很多连接,导致低吞吐量,则调整此参数。

如何查看或设置:

使用 regedit 命令访问 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ Services\TCPIP\Parameters 注册表子键并创建名为 TcpTimedWaitDelay 的新 REG_DWORD 值。 将此值设置为十进制 30,其为十六进制 0x0000001e。该值将等待时间设置为 30 秒。 停止并重新启动系统。

缺省值:0xF0,它将等待时间设置为 240 秒(4 分钟)。

建议值:最小值为 0x1E,它将等待时间设置为 30 秒。

 

MaxUserPort

描述:

确定在应用程序从系统请求可用用户端口时,TCP/IP 可指定的最高端口号。

 

如何查看或设置:

使用 regedit 命令访问 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ Services\TCPIP\Parameters 注册表子键并创建名为 MaxUserPort 的新 REG_DWORD 值。停止并重新启动系统。

缺省值:无

建议值:至少十进制 32768。

 

问题:

    在一次性能测试过程中,使用http协议的多用户向服务器发送请求。设置了持续时间,出现错误为:Action.c(8): Error -27796: Failed to connect to server "server:port": [10060] Connection timed out.

分析:

因为负载生成器的性能太好,发数据包特别快,服务器也响应特别快,从而导致负载生成器的机器的端口在没有timeout之前就全部占满了。在全部占满后,就会出现上面的错误。执行netstat –na命令,可以看到打开了很多端口。所以就调整TCP的time out。即在最后一个端口还没有用到时,前面已经有端口在释放了。

 

成功的解决方法:

在注册表HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters里,有如下两个键值:

TcpTimedWaitDelay

MaxUserPort

1,这里的TcpTimedWaitDelay默认值应该中是30s,所以这里,把这个值调小为5s(按需要调整)。

2,也可以把MaxUserPort调大(如果这个值不是最大值的话)。


TAG:

 

评分:0

我来说两句

Open Toolbar