Action.c(28): Error -27796: Failed to connect to server "xxxx": [10060] Connection timed out

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设置,另一个就是设置服务器的超时时间在合理范围之内,不要太长,也不要太短。

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

.......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-----关闭连接 】

问题描述:

使用http协议,200VU并发访问:URL=http://124.74.192.111/xx.web.taobao/pages/left.jsp,测试中正常,但URL增加了端口号8080即:URL=http://124.74.192.111:8080/xx.web.taobao/pages/left.jsp,并设置了持续时间,开始运行controller即开始报大量的错:“Action.c(5): Error -27796: Failed to connect to server "124.74.192.111:8080": [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”。

问题解决:

根据错误提示,修改测试机设置:HKEY_LOCAL_MACHINE/System/CurrentControlSet/Services/tcpip/Parameters/TcpTimedWaitDelay其值改小,比如5. 重启测试机,再加压测试即可。

根据提示还要调整“MaxUserPort ”的键值,因为这里的测试机该值已为最大,故不需要调整这个值 。

分析:

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

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

成功的解决方法:

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

TcpTimedWaitDelay

MaxUserPort

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

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

Action.c(28): Error -27796: Failed to connect to server "router.pay.360buy.com:80": [10060] Connection timed out

1. 修改压力机注册

尝试修改注册表中 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters里,有如下两个键值: TcpTimedWaitDelay  --- 1 MaxUserPort  ----  65534 端口等待时间调小,最大可用端口调大

二. 在nginx 和 tomcat所在服务器上查看连接数是不是已满, 输入

netstat -an | grep TIME_WAIT -wc   发现大约有19000个

看来确实有很多time_wait的连接啊!

1. 检查 /ext/sysctl.conf ,是不是有

net.ipv4.tcp_tw_recycle = 1 net.ipv4.tcp_tw_reuse = 1

这两项配置,发现已经配置了

2. 修改loadrunner的配置

分别修改VUGEN和 control 二者的run time setting中的请求超时时间Preferences 中点击Options 其中有三项的参数可以一次都修改了,

HTTP-request connect timeout              建议修改为1000

HTTP-request receieve timeout             建议修改为1000

Step download timeout                            建议修改为10000

Http Keep Alive time out                            建议修改800

1. 修改压力机注册

尝试修改注册表中
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters里,有如下两个键值:
TcpTimedWaitDelay  --- 1
MaxUserPort  ----  65534
端口等待时间调小,最大可用端口调大

二. 在nginx 和 tomcat所在服务器上查看连接数是不是已满, 输入

netstat -an | grep TIME_WAIT -wc   发现大约有19000个

看来确实有很多time_wait的连接啊!

1. 检查 /ext/sysctl.conf ,是不是有

net.ipv4.tcp_tw_recycle = 1 
net.ipv4.tcp_tw_reuse = 1

这两项配置,发现已经配置了

2. 修改loadrunner的配置

分别修改VUGEN和 control 二者的run time setting中的请求超时时间Preferences 中点击Options 其中有三项的参数可以一次都修改了,

HTTP-request connect timeout              建议修改为1000

HTTP-request receieve timeout             建议修改为1000

Step download timeout                            建议修改为10000

Http Keep Alive time out                            建议修改800

转载:http://blog.csdn.net/on_my_way20xx/article/details/8646108

http://www.51testing.com/html/21/562021-869112.html

性能测试过程中,大家都可能遇到过LR-27796错误,此类错误屡见不鲜..在走访了各大论坛后,发现大侠们给出的各类的版本的27796错误,那么27796是如何产生的呢?接下来跟大家分享下我的所得与感想

在测试一个web站的接口项目中,出现了大量的27796错误(此报错代码有很多种错误提示,比如:27796—Failed to connect toserver、27796—timeout、27796-No Route To Host等),根据LR的帮助提示是修改注册表的两个键值后方可解决,我试着修噶了注册表,重启了机器,在喜气冲冲的进行新的一轮压测过程中发现,错误木有解决,依然存在27796错误。我开始在网上搜索此问题的处理办法,说法云云:1、重启机器、2、修改注册表、3、更换操作系统(囧)我发现对我木有效果,出现错误的请求占总请求的20%左右,这个比例压测是无任何意义的!心灰意冷....

我开始从第一个27796—Failed to connect to server开始查找原因,如果出现连接失败,肯定是客户端与服务器端的通信出现了问题导致的,不论外界原因,实质就是通信!
我试着使用网络工具wireshark在LoadRunner开启时,抓取通信信息。问题出现了,在监测通讯过程中发现,问题出现在第二次握手,客户端已经发出syn包,但服务器端没有接受到syn包,
当timewait三秒钟后再次发出syn包,服务器端可以接收到此包,问题出现了,就是说这个请求在没有建立连接时就出现错误了,神奇了!!!
客户端与服务器端
建立连接如下:
第一次  第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers)。第二次  第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态; 
  

三次握手

第三次  第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。

问题找到原因了,那么这些不同的27796有那些问题,如何产生的呢?

答案1:大家可能有手工编写脚本的习惯,大家使用最多的协议应该是web/http协议,那么GET、POST请求是最常见的,例如:web_url("www.baidu.com",                 "URL=http://www.baidu.com", 
                "Resource=0", 
                "RecContentType=text/html", 
                "Referer=", 
                "Snapshot=t2.inf", 
                "Mode=HTML", 
                LAST);
这段代码中我们来分析下,如果把以上代码修改为
     web_url("www.baidu.com",                 "URL=http://www.baidu.com",
                LAST);
请 求是否成功?答案是肯定是,可以发起get请求。那么大家实验过没有如果这样的话,在压测过程中是否出现过问题?LR会出现27796错误,大家可以实验 下,那么问题出在那呢?问题就出现在自己的代码中,缺少RecContentType=text/html类型导致GET请求出现问题,服务器端无法识别 请求携带的标示,所以自己的代码编写是27796产生的一部分

原因2:这个是摘自百度的 帖子"因为负载生成器的性能太好,发数据包特别快,服务器也响应特别快,从而导致负载生成器的机器的端口在没有timeout之前就全部占满了。在全部占 满后,就会出现上面的错误。执行netstat –na命令,可以看到打开了很多端口。所以就调整TCP的time out。即在最后一个端口还没有用到时,前面已经有端口在释放了"
说白了点,就是端口没有释放掉timeout状态,没有恢复到监听的状态,所以此时做好的办法就是,重启电脑恢复这些端口占用的状态,当重启机器后,查看状态netsat -nao 后,如果恢复到正常端口的状态,就可以再次进行性能测试了。

原因3:第三个原因
在 性能测试i过程中,可能出现服务器资源利用率过高,导致建立连接失败现象,此类错误应该查看服务器的资源利用率,如果出现了资源利用过高现象,27796 的错误也会在此时产生!27796的错误一般都是由于建立连接失败而导致的,建立连接失败的原因有很多种情况,大家只要明白其中27796的产生错误的实 质就可以了,在大家测试过程中欢迎大家跟帖,在什么情况出现的这种错误,如何解决的继续下去!

http://www.360doc.com/content/10/0805/09/1429048_43780321.shtml

原文地址:https://www.cnblogs.com/python-xiakaibi/p/10450146.html

时间: 2024-11-10 04:33:48

Action.c(28): Error -27796: Failed to connect to server "xxxx": [10060] Connection timed out的相关文章

loadrunner:Action.c(4): Error -27796: Failed to connect to server &quot;10.0.9.184:8080&quot;: [10060] Connection timed out

Action.c(4): Error -27796: Failed to connect to server "10.0.9.184:8080": [10060] Connection timed out (1) 在负载生成器的注册表HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Tcpip/Parameters里,有如下两个键值: TcpTimedWaitDelay和MaxUserPort 1,这里的TcpTimedWaitD

Action.c(58): Error -27796: Failed to connect to server &quot;hostname&quot;

分析: 因为负载生成器的性能太好发数据特别快,服务器响应也特别快,从而导致负载生成器的端口在没有timeout之前就全部占满了. 解决方案一:   在负载生成器的注册表HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Tcpip/Parameters里,有如下两个键值: TcpTimedWaitDelay MaxUserPort 1,这里的TcpTimedWaitDelay默认值应该中是30s,所以这里,把这个值调小为5s(按需要调整).

vuser_end.c(3): Error -27796: Failed to connect to server &quot;10.204.105.204:9192&quot;: [10060] Connection timed out

分析 因为负载生成器的性能太好,发数据包特别快,服务器也响应特别快,从而导致负载生成器的机器的端口在没有timeout之前就全部占满了.在全部占满后,就会出现上面的错误.执行netstat–na命令,可以看到打开了很多端口.所以就调整TCP的time out.即在最后一个端口还没有用到时,前面已经有端口在释放了. 成功的解决方法: 在负载生成器的注册表HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters里,有如

【LR11】Error -27796: Failed to connect to server"server:port": [10060] Connection timed out错误解决办法

  场景描述:被测系统是发布在远程服务器上的,假设IP是10.10.10.10,端口是8066,那么访问地址是http://10.10.10.10:8066/,在control机器上我设置了IP欺骗. 错误现象:在场景运行时出现大量Action.c(8): Error -27796: Failed to connect to server"server:port": [10060] Connection timed out错误. 官方的troubleshooting: 查看工具的tro

LR报:Error 27796 Failed to connect to server

原错误信息: Action.c(58): Error -27796: Failed to connect to server "10.1.44.68:7013": [10048] Address already in useTry changing the registry valueHKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\tcpip\Parameters\TcpTimedWaitDelay to 30and HKEY_

Error -27796: Failed to connect to server &quot;ip地址&quot;: [10060] Connection timed 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 down

使用phpmailer插件发邮件失败提示:SMTP -&gt; ERROR: Failed to connect to server: Connection timed out (110) smtp connect() failed;

一个邮件发送问题,整整弄了我一周时间,起因是这样的,之前弄的一个网站,需要在邮箱里面认证之后才可以注册成功.网站上线了差不多一年之后,客户突然跟我说,网站不能注册了,然后我就查看了一下代码. 发现报这个错误:SMTP -> ERROR: Failed to connect to server: Connection timed out (110)   smtp connect() failed: 这是我的配置. 然后我就想,之前都是可以用的,那会不会可能是客户在邮箱里面更改客户端密码呢?然后我就

android 中Network error IOException: failed to connect to /127.0.0.1 (port 1433): connect failed: ECONNREFUSED (Connection refused)

下面对android中出现的Network error IOException: failed to connect to /127.0.0.1 (port 1433): 做一下总结: 当用android程序调用本地的sqlserver的时候,当连接ip写成127.0.0.1的时候,怎么都连不通,出现以下的错误信息: 感觉好像是代码有问题或者是清单文件中某个权限忘加了,其实不是这样的.原来模拟器默认把127.0.0.1和localhost当做本身了,在模拟器上可以用10.0.2.2代替127.0

Unable to connect to the MKS: Failed to connect to &lt;server IP&gt;:902.控制台黑屏

本人此次遇到此问题的是VSphere 5.1. 在此问题出现之前都正常,没出过任何问题,问之做过什么动作,是客户重配了网络,这其实是我要求改的,但是客户改的和我要求的不一样. 我计划是vswitch0做管理,vswitch1做vmotion,vswitch2做vm network:由于安装ESXI 5.1时自动生成vswitch0:10.23.70.60,客户误搭建了vswitch1:10.23.70.54做管理,vswitch2做vmotion,vswitch3做vm network,且vsw