loadrunner error 27796 Failed to connect to server

余生颓废 提交于 2021-01-01 00:00:39

Action.c(58): Error -27796: Failed to connect to server "www.baidu.com:80": [10048] Address already in use
Try changing the registry value
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\tcpip\Parameters\TcpTimedWaitDelay to 30
and HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\tcpip\Parameters\MaxUserPort to 65534
and rebooting the machine
See the readme.doc file for more information





该问题网上的回答多半是跟据提示在注册表中已将TcpTimedWaitDelay 改为 1;MaxUserPort 改为 65534;并且重启电脑。

但是根据这个改了之后还是无法解决,因为我的服务在linux机器上,linux机器的连接数也已经改为最大,然后把连接设置成复用,就可以了~

vi /etc/sysctl.conf   //修改文件里以下参数

#表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭;
net.ipv4.tcp_tw_reuse = 1

保存后:
sysctl -p /etc/sysctl.conf        // 作用:重新载入/etc/sysctl.conf文件


.......2012.10.20.-----

网上的提示多为:LR压力测试遇到如上错误,跟据提示在注册表中已将TcpTimedWaitDelay  改为 1;MaxUserPort 改为 65534;并且重启电脑。运行后仍出现上面的错误。。。。但还是无法解决。

于是~~~~:
在 run-time setting/browser emulation中将simulate a new user on each iteration  选项去掉(默认是选中的)。重新运行一切正常,没有错误出现。

 

【复制博主的猜测:
猜测原因,客户端性能比较好,发出压力太快,所以把tcp/ip的连接或端口占满。在网上查了一下,xp好像默认开启15个tcp/ip。。。

去掉这个选项的意思是,始终使用一个tcp/ip链接,不断开,也就是开发人员所说的长链接或持久连接。   
短连接:建立连接-----发送和接收报文1-------关闭连接

长连接:建立连接-----发送和接收报文1.。。。2.。。。3-----关闭连接 】

妈的,累死了,搞了一整个晚上的connectify还是不能用,我cao...!又熬夜了,还一事无成,我的超级本啊,我的PPT啊。cao。。。不弄了,来去睡。

--------------------------------------------------------------------------------------------------

 Error -27796: Failed to connect to server "125.93.51.230:8080": [10061]

Connection refused..

2013.05.31,这个27796一直是我心中的痛,试过网上所有的方法了,还是不行,我只能怀疑是不是我的客户端OS是win7的,所以才造成这种情况.....哎~!

认真分析这个错误,其实比较容易理解,就是连接不上服务,由于端口已经满了,那么自己的本机已经修改成65534,服务器已经修成成65534,那么这就是唯一的解决方式么?后来仔细思考,我找到了两种解决方式:

1、通过让每次迭代不启用新的连接,我想就可以解决此问题,经过验证,发现这个问题确实不发生了。操作如下,在controller的运行时设置中的-->browser Emulation-->不扣选simulate a new user on each iteration,这样运行时并发人数是多少,那么就启动多少个端口。还是上面的问题,是否勾选这个选项就一定会报27796错误么?

2、回答上面的提问,答案是不一定。如果你每次迭代启用新的端口,但是由于迭代次数*并发数<65534就不会报这个错误。如果设置的迭代次数*并发数>65534,也不一定会出现这个错误,例如:并发人数为1000,平均响应时间为1s,那么也就是说1s会占用1000个端口,也就是说不到66s时端口就会占满,如果服务器能在65s内关闭之前占用的端口之间的连接,也就是说65s超时时间,或者会话保持为65s以内,那么就能解决此问题。

以上提出两种解决方式,都可以解决27796error,一个是修改loadrunner中的controller设置,另一个就是设置服务器的超时时间在合理范围之内,不要太长,也不要太短。

---------------------------------

官方的troubleshooting:

查看工具的troubleshooting,如下:

Message Code 27796

Failed to connect to server 'hostname';port_ld': 'reason'.

Unable to connect to the specified server and port.

Troubleshooting

o     Try to address the reason provided for the connection failure.

o     Try to access the application with a browser from the injector machine and from another machine (such as the recording machine).

o     Check that you accurately specified the correct host name and port.

o     Ping the host/port.

o     Check if the server application you are trying to access is running.

o     If you used a hostname, check if it was resolved to the correct address.

o     Check if the server application is listening to the right port.


成功的解决方法:

 

在负载生成器的注册表HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Tcpip/Parameters里,有如下两个键值:

TcpTimedWaitDelay

MaxUserPort

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

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

 

反复验证,问题解决。【我怎么试了好几种方法都失败啊。】

----------------------------------------------------connection time out---------------

Error -27796: Failed to connect to server "ip地址": [10060] Connection timed out的解决办法:


解决办法一是:

(1)1. 修改run time setting中的请求超时时间Preferences 中点击Options 其中有三项的参数可以一次都修改了,HTTP-request connect timeout,HTTP-request receieve timeout,Step download timeout,分别建议修改为1000、1000、10000;run time setting设置完了后记住还需要在control组件的option的run time setting中设置相应的参数;

     2. Browser Emulation 中的Download non-HTML resources 选项去掉,点击OK即可 

(2)办法(一)不能解决的情况下,解决办法如下:

  设置runt time setting中的internet protocol-preferences中的advaced区域有一个winlnet replay instead of sockets选项,选项后再回放就成功了。切记此法只对windows系统起作用,此法来自zee的资料。


易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!