问题:
在性能测试过程中,使用http协议的多用户向服务器发送请求。设置了持续时间,运行时出现错误:Failed to connect to server 'hostname';port_ld': 'reason'.10048.
解决方法:
1.首先排除网络问题,
Ping the hostname/port. 确保客户端与服务器网络连接正常
Check if the server application you are trying to access is running.
检查网络环境是否支持运行用户数,
2. 分析:
因为负载生成器的性能太好,发数据包特别快,服务器也响应特别快,从而导致负载生成器的机器的端口在没有timeout之前就全部占满了。在全部占满后,就会出现上面的错误。执行netstat –na命令,可以看到打开了很多端口。所以就调整TCP的time out。即在最后一个端口还没有用到时,前面已经有端口在释放了。
在负载端,注册表HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters里,有如下两个键值:
TcpTimedWaitDelay
MaxUserPort
1,这里的TcpTimedWaitDelay默认值应该中是30s,所以这里,把这个值调小为5s(按需要调整)。
2,也可以把MaxUserPort调大(如果这个值不是最大值的话)。
重启电脑,问题解决。