问题描述:

使用LoadRunner的web(HTTP/HTML)协议的多用户向服务器提交数据时,出现错误信息:

Action.c(11): Error -27796: Failed to connect to server "test.shunde.gov.cn:80": [10048] Address already in use

Try changing the registry value

HKEY_LOCAL_MACHINESystemCurrentControlSetServicestcpipParametersTcpTimedWaitDelay to 30

and HKEY_LOCAL_MACHINESystemCurrentControlSetServicestcpipParametersMaxUserPort to 65534

and rebooting the machine

See the readme.doc file for more information

解决方法:

打开LoadRunner负载机所在机器的注册表,将HKEY_LOCAL_MACHINESystemCurrentControlSetServicestcpipParameters项中的TcpTimedWaitDelay值设置为5s或者其它(按需要调整)也可以把MaxUserPort值调大(如果这个值不是最大值的话),同时增加脚本的think time,再重启机器。

尝试修改注册表中
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParameters里,有如下两个键值:

TcpTimedWaitDelay
MaxUserPort
端口等待时间调小,最大可用端口调大


分析原因:

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


参数介绍
:

TcpTimedWaitDelay
值決定了 TCP/IP
必须经过多久,才能释放已关闭的连接及重用使用它的资源。这个关闭和释放的间隔称为TIME_WAIT状态,或是区段生命期限上限
(2MSL)状态的两倍。在这段时间內,通往用户端和伺服器的连接重新开启的成本,比建立新的连接低。藉由缩減这个项目的值,TCP/IP
可以更快释放已关闭的连接,提供更多资源给新的连接。如果执行中的应用程式需要快速释放、建立新连接,或多个连接在
TIME_WAIT
状态中造成通讯量太低,因而需要进行调整的话,请调整这个参数。

预设值是 0xF0,它会将等待时间设为
240
秒(4
分钟)。

最小的建议值是 0x1E,它会将等待时间设为
30
秒。请利用这个程序来检视或自订您的值。

启动regedit
指令,浏览至 HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTCPIPParameters

登录次机码,建立名称为 TcpTimedWaitDelay
的新 REG_DWORD
值。

将值设为十进制 30,也就是十六进制的
0x0000001e。这个值会将等待时间设为
30
秒。

关闭登录编辑器。

停止并重新启动系統。

MaxUserPort
值決定了当应用程式向系统要求可用的使用者埠时,TCP/IP
所能指派的最高埠号。如果您的系统报告建立 Socket
时,发生错误异常状况,可能是匿名(短期)埠的数量不当所造成,当系统开启大量的埠来建立 Web
服务器、资料库或其他远端资源的连接时,尤其如此。

TCP/IP
选项
TcpTimedWaitDelay设置(其他版本的)

当TCP连接被关闭时,{ Protocol, Local IP, Local Port,
Remote IP, Remote Port}五元组就进入TIME_WAIT状态,默认时间是4分钟。可以通过一组命令看看tcp的连接状态:

netstat
-ano>>c:port.txt

本地ip,远程ip,远程端口都是固定的,只有本地端口是变化的,本地端口只能使用1024-5000,因此如果在4分钟内发起了大约4000个连接,这时就会发生异常,下面是使用WCF,客户端的异常:System.Net.Sockets.SocketException:
Only one usage of each socket address (protocol/network
address/port) is normally permitted 192.168.101.5:8888

at
System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot,
SocketAddress socketAddress)

at
System.Net.Sockets.Socket.Connect(EndPoint remoteEP)

at
System.ServiceModel.Channels.SocketConnectionInitiator.Connect(Uri
uri, TimeSpan timeout)

TCP有个选项
TcpTimedWaitDelay:

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

• 打开注册表编辑器,如
Regedit.exe
或 Regedt32.exe。

• 导航到:HKLMSystemCurrentControlSetServicesTcpipParameters

• 双击
TcpTimedWaitDelay,然后将“数值数据”
字段设置为 60(十进制)。

• 关闭注册表编辑器,然后重新启动计算机。

MaxUserPort

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

如何查看或设置:

使用 regedit
命令访问 HKEY_LOCAL_MACHINESYSTEMCurrentControlSet
ServicesTCPIPParameters
注册表子键并创建名为 MaxUserPort
的新 REG_DWORD
值。停止并重新启动系统。

*********************************************************************************************************

Error -27796: Failed to connect to server "xxxx":

分析
 
因为负载生成器的性能太好,发数据包特别快,服务器也响应特别快,从而导致负载生成器的机器的端口在没有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. 修改压力机注册

MaxUserPort  ----  65534
端口等待时间调小,最大可用端口调大

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

netstat -an | grep TIME_WAIT -wc

//发现大约有19000个
 
查询linux系统最大连接数:
ulimit -n

设置最大连接数(根据自己需求设置)
ulimit -n 4096

 
看来确实有很多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

[转载]Error -27796: Failed to connect to server的更多相关文章

  1. 【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欺骗. ...

  2. loadrunner error 27796 Failed to connect to server

    (2012-10-23 01:23:17) 转载▼   Action.c(58): Error -27796: Failed to connect to server "www.baidu. ...

  3. 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 ...

  4. loadrunner:Action.c(4): Error -27796: Failed to connect to server "192.168.66.3:8080": [10060] Connection timed out

    Action.c(4): Error -27796: Failed to connect to server "192.168.66.3:8080": [10060] Connec ...

  5. Error -27796: Failed to connect to server "ip地址": [10060] Connection timed out

    如果出现Error -27796: Failed to connect to server "ip地址": [10060] Connection timed out 这样的错误,如 ...

  6. loadrunner:Action.c(4): Error -27796: Failed to connect to server "10.8.251.101:10086": [10060] Connection timed out

    Action.c(4): Error -27796: Failed to connect to server "10.8.251.101:10086": [10060] Conne ...

  7. LR报:Error 27796 Failed to connect to server

    原错误信息: Action.c(58): Error -27796: Failed to connect to server "10.1.44.68:7013": [10048] ...

  8. Action.c(58): Error -27796: Failed to connect to server "hostname"

    分析: 因为负载生成器的性能太好发数据特别快,服务器响应也特别快,从而导致负载生成器的端口在没有timeout之前就全部占满了. 解决方案一:   在负载生成器的注册表HKEY_LOCAL_MACHI ...

  9. mongodb副本集出现的错误 mongodb error: { MongoNetworkError: failed to connect to server [127.0.0.1:1010] on first connect [MongoNetworkError: connect ECONNREFUSED 127.0.0.1:1010]

    replset = pictureWorks 执行:mongo --port 1008  (查看1008是否是住数据库) rs.status() 执行: onfig={"_id": ...

随机推荐

  1. 华为上机测试题(数字字符串转二进制-java)

    PS:此题满分,可参考 /*  * 题目:数字字符串转二进制 * 描述: 输入一串整数,将每个整数转换为二进制数,如果倒数第三个Bit是“0”,则输出“0”,如果是“1”,则输出“1”. 题目类别: ...

  2. POCO库中文编程参考指南(6)Poco::Timestamp

    1 类型别名 三个时间戳相关的类型别名,TimeDiff表示两个时间戳的差,第二个是以微秒为单位的时间戳,第三个是以 100 纳秒(0.1 微妙)为单位的时间戳: typedef Int64 Time ...

  3. JS或jsp获取Session中保存的值

    JS是不能读取Session中的值的 . session是服务器对象, javascript是客户端脚本,你能做的操作就是把这个值用 <%=%>输出到页面的javascript中参与运算, ...

  4. Selenium2+python自动化17-JS处理滚动条【转载】

    前言 selenium并不是万能的,有时候页面上操作无法实现的,这时候就需要借助JS来完成了. 常见场景: 当页面上的元素超过一屏后,想操作屏幕下方的元素,是不能直接定位到,会报元素不可见的. 这时候 ...

  5. 使用Android Studio开发调用.NET Webservice 之初体验

    本人是.NET出身 但苦于领导要让研究Android 外壳然后准备套html5  ,当试验兵真坑啊 但也没办法 咱还得研究啊,索性 不辜负领导的期望(也研究好两三天了)总算弄明白了 app本地存储 和 ...

  6. HDU 17新生赛 正品的概率【数论-概率论】

    正品的概率 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submi ...

  7. Ngnix 安装与使用

    高性能web服务器-ngnix MySQL读写分离技术 sphinx和mongodb 课程内容简介 一般都是拿nginx作为负载均衡器使用.Apache还是web市场老大.全球的市场份额大概在(60% ...

  8. 树链剖分【p1505】[国家集训队]旅游

    Description Ray 乐忠于旅游,这次他来到了T 城.T 城是一个水上城市,一共有 N 个景点,有些景点之间会用一座桥连接.为了方便游客到达每个景点但又为了节约成本,T 城的任意两个景点之间 ...

  9. php升级版本

    Centos下Yum安装PHP5.5,5.6,7.0 默认的版本太低了,手动安装有一些麻烦,想采用Yum安装的可以使用下面的方案: 1.检查当前安装的PHP包 yum list installed | ...

  10. Servlet笔记2-文件上传

    Servlet上传文件: Servlet 3.0改进了部分API,其中HttpServletRequest增加了对文件上传的支持. HttpServletRequest提供了两个方法来处理文件上传: ...