LoadRunner超时问题和错误
执行测试并分析调优:
测试中报错的信息解决:
1. Failed to connect to server "域名:80": [10065] No Route to Host
解决:
这种错误信息有两种情况,一是交换机堵塞,一是服务器网络堵塞或者CPU无法响应(网卡中断处理不过来了)。
从服务器端检查下iptables 是否开启,看看 /proc/sys/net/ipv4/ip_conntrack_max 是多少。
2. TTP Status-Code=500 (Internal Server Error)
解决:
A. 这个问题,开发人员从程序和环境进行调优了。
B. 通过抓包发现有大量的sql语句重复执行,建议优化sql。
C. 优化JVM。机器配置:4G的内存,32个线程并发能力
-Xmx3800m -Xms3800m -Xmn2g -Xss128k -XX:+UseParallelGC -XX:ParallelGCThreads=20
3. HTTP Status-Code=504 (Gateway Time-out)
解决:
502 bad Gateway 服务器作为网关或者代理时,为了完成请求访问下一个服务器,但该服务器返回了非法的应答。
504Gateway Timeout 由作为代理或网关的服务器使用,表示不能及时地从远程服务器获得应答。
解决:可以启动多个tomcat服务,一个tomcat服务可能支撑不了那么大的并发。(一般情况下像IBM高配的服务一个tomcat能支持2000并发吧。)(只能让部署环境的同事帮忙调整,我们没这权利啊。)
4. Step download timeout (120 seconds) has expired when downloading non-resource(s)
解决:
可以修改配置参数(tomcat的),也可以程序上进行调整超时时间。
如 <Connector port="8080"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
debug="0" connectionTimeout="20000"
disableUploadTimeout="true" />
当然了也可以调整LR的配置但最好不这样。
5. Abnormal termination, caused by mdrv process termination
解决:
大胆尝试了修改了LR中的D:\Program Files\Mercury\LoadRunner\dat\protocols 中的http.lrp信息,在[Vugen]下面新加一条MaxThreadPerProcess=要设置的vuser数量 。
测试结果:
● 前台发帖:
场景设计:执行2000并发匿名对不同的区发帖,每15秒上50个用户,2000个用户全部到达后,持续执行10分钟。
并发数 | 提问响应时间 | 成功率% | 服务器每秒处理的请求数 | 吞吐量(Mbps) |
2000 |
● 后台回帖:
场景设计:执行400并发对同一区不同的帖子进行回复,每10秒上20用户,400个用户全部到达后,持续执行10分钟。
并发数 | 回帖响应时间 | 成功率% | 服务器每秒处理的请求数 | 吞吐量(Mbps) |
400 |
注:响应时间的单位为:秒
这个测试结果比较满意,还在进一步调优。
http://www.51testing.com/html/96/n-131696.html
还有一种解释是这样的
我在托管机房用LR11测试NGNIX搭建得WEB时,出现Action.c(22): Continuing after Error -26610: HTTP Status-Code=502 (Bad Gateway) for“http://xxxx.com”问题,
解决思路:1允许同一IP模拟大量用户并发发送请求;
2每个用户用一个IP地址对服务器加压;
3服务器安全设置,像防洪水攻击等等,需要从防火墙、操作系统的配置文件设置;
最后我的问题解决方法是:同一个IP拟模大量用户并发,LINUX服务器的安全设置中像防洪水设置就把它当做攻击。查出问题原因后,取消此安全设置,解决了HTTP Status-Code=502 (Bad Gateway) 错误。