当前位置: 代码迷 >> Java Web开发 >> Webbench 压力测试结果有Failed代表什么,该怎么解决
  详细解决方案

Webbench 压力测试结果有Failed代表什么,该怎么解决

热度:530   发布时间:2016-04-17 11:07:38.0
Webbench 压力测试结果有Failed代表什么
最近在做系统的压力测试,使用webbench和ab两个工具,系统由3个tomcat在同一服务器上mod_jk作负载均衡,JVM最大内存分配2G,最小1G。这个测试是对一个比较复杂的Servlet进行请求,servlet大概会JOIN 7个表格,并返回2K左右的结果,没有session。

测试结果如下:

Python code
webbench -c 1000 -t 60 http://doman.com/MyServlet?param=12345Webbench - Simple Web Benchmark 1.5Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.Benchmarking: GET http://doman.com/MyServlet?param=123451000 clients, running 60 sec.Speed=6426 pages/min, 1499541 bytes/sec.Requests: 5207 susceed, 1219 failed.


webbench的测试结果,里面有1219挂掉的,ab的测试,1000次1000并发测试(ab -n 1000 -c 1000)时基本完成不了,800并发有时候能完成,500并发基本没问题。但ab的结果不稳定,比如1000并发时,有时候能完成800次请求,有时能完成500次,有时候甚至100个都完成不了。调整并发数量到500时也会出现这样的问题。无法完成时报错信息是apr_socket_recv: Connection reset by peer (104)

下面是用ab测试,200并发1000次执行的结果。也有11个失败的
Python code
Server Software:        Apache/2.2.14Server Hostname:        domain.comServer Port:            80Document Path:          MyServlet?param=12345Document Length:        17042 bytesConcurrency Level:      200Time taken for tests:   11.480 secondsComplete requests:      1000Failed requests:        11   (Connect: 0, Receive: 0, Length: 11, Exceptions: 0)Write errors:           0Total transferred:      17280292 bytesHTML transferred:       17044292 bytesRequests per second:    87.11 [#/sec] (mean)Time per request:       2296.027 [ms] (mean)Time per request:       11.480 [ms] (mean, across all concurrent requests)Transfer rate:          1469.96 [Kbytes/sec] receivedConnection Times (ms)              min  mean[+/-sd] median   maxConnect:        0   43 351.9      0    2999Processing:   420 2141 619.7   2139    5440Waiting:      371 2138 619.6   2135    5438Total:        426 2184 743.2   2141    7162Percentage of the requests served within a certain time (ms)  50%   2141  66%   2313  75%   2441  80%   2506  90%   2804  95%   3341  98%   4373  99%   5362 100%   7162 (longest request)


麻烦大家帮我看看测试结果是什么意思。

我有几个问题:
1. webbench里出现failure是什么意思,是否意味着高并发时有的访问会失败?如果访问失败,那用户是得到500或404报错信息,还是速度变慢?
2. ab测试无法通过是什么原因?
3. 1000并发数大概是多少平均每分钟访问量达到的?在webben参数里,1000并发运行60秒,这个测试数据合理吗?
4. 一个繁忙的网站,如果日访问量超过千万,并发的峰值能达到多少?
5. 还有什么方法可以解决高并发可能产生的问题?目前是3个tomcat在同一服务器,以后可能用更多的tomcat在不同服务器上负载均衡,能否提高系统处理并发的性能?

问题有点多,希望高手指点,分享你们的经验,谢谢!

------解决方案--------------------
你可以详细看一下 错误记录 应该都是 busy 这个和Tomcat 配置响应时间那些参数都有关系

你如果测试负载的压力的话 建议用 weblogic 。。。
------解决方案--------------------
webbench -c 1000 -t 60 http://doman.com/MyServlet?param=12345
Webbench - Simple Web Benchmark 1.5
Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.

Benchmarking: GET http://doman.com/MyServlet?param=12345
1000 clients, running 60 sec.

Speed=6426 pages/min, 1499541 bytes/sec.
Requests: 5207 susceed, 1219 failed.

对于第一个问题,失败我估计是它GET请求得不到200 OK response
至于具体是404还是500,抓个它的返回包就能看出来了
  相关解决方案