首页 > Web开发 > 详细

Apache ab性能测试结果分析

时间:2020-01-15 20:27:35      阅读:91      评论:0      收藏:0      [点我收藏+]

ab 对很多专业做压力测试的人来说未必熟悉,总会觉得这玩意儿比较low吧,大都人知道loadrunner,专业,而且报告也好看,但是个人认为体量比较大,用起来比较繁琐,在一些小的测试场景下,还有简单的apache ab,webbench等,体量很小,一个命令行就能马上得到反馈的小工具,部分好坏,只说能存在,一定是各有优势吧。

今天用了下ab测试,整理了一下(也有去别人那学习的)做个笔记,希望对以后自己有用吧!说的内容不一定全对,有错误内容还请高手纠正!

先说下安装,ab是apache自带的压力测试工具,测试一些静态页面比较方便

linux系统安装apache就行了,或者只安装httpd-tools也行 


 

开始测试-主要针对报告内容进行分析

场景:模拟100个用户,对百度首页发起总共2000次请求。
命令: ab -n 2000 -c 100 https://www.baidu.com/index.html

测试结果:测试结果 #注释

[root@test2 ~]# ab -n 2000 -c 100 https://www.baidu.com/index.html
This is ApacheBench, Version 2.3 <$Revision: 1430300 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

#以上是一些版本信息

Benchmarking www.baidu.com (be patient)
Completed 200 requests
Completed 400 requests
Completed 600 requests
Completed 800 requests
Completed 1000 requests
Completed 1200 requests
Completed 1400 requests
Completed 1600 requests
Completed 1800 requests
Completed 2000 requests
Finished 2000 requests

#测试完成度情况


Server Software: BWS/1.1  #被测试的主机的软件情况,这个BWS 应该百度自己的WEB服务
Server Hostname: www.baidu.com #被测试的服务器主机名
Server Port: 443 #被测试的服务器端口
SSL/TLS Protocol: TLSv1.2,ECDHE-RSA-AES128-GCM-SHA256,2048,128  #所适用https协议的加密算法

Document Path: /index.html  #请求的文件路径
Document Length: 227 bytes  #请求的文件大小

Concurrency Level: 100  #并法请求数量
Time taken for tests: 1.323 seconds   #本次测试适用的总时长
Complete requests: 2000   #本次测试发起的总请求数量
Failed requests: 0    #请求失败的数量,这个地方如果因为服务器性能,网络因素都有可能是大于0的,通过该数值和Complete requests相除可以计算请求的失败率,作为测试结果的重要参考
Write errors: 0    #网络链接写入错误
Total transferred: 2163956 bytes  #传输数据总量,指的是ab从被测服务器接收到的总数据量,包括index.html的文本内容和请求头信息
HTML transferred: 454000 bytes   #从服务器接收到的index.html文件的总大小,等于Document Length*Complete requests=227 bytes*2000=454000 bytes
Requests per second: 1512.13 [#/sec] (mean)    #平均(mean)每秒完成的请求数:QPS,这是一个平均值,等于Complete requests/Time taken for tests=2000/1.323等1511.71,基本约等于这个值


Time per request: 66.132 [ms] (mean)    #从用户角度看,完成一个请求所需要的时间(因用户数量不止一个,服务器完成100个请求,平均每个用户才接收到一个完整的返回,所以该值是下一项数值的100倍。)
Time per request: 0.661 [ms] (mean, across all concurrent requests)  #服务器完成一个请求的时间
Transfer rate: 1597.75 [Kbytes/sec] received     #网络传输速度。对于大文件的请求测试,这个值很容易成为系统瓶颈所在。要确定该值是不是瓶颈,需要了解客户端和被测服务器之间的网络情况,包括网络带宽和网卡速度等信息。

Connection Times (ms)     
                                 min     mean         [+/-sd]       median      max
Connect:                    18       44              18.0           42            318
Processing:                 5        18              10.5           18            163
Waiting:                     5        13               9.7            12            161
Total:                        26       62               21.8          59            345

#这几行组成的表格主要是针对响应时间也就是第一个Time per request进行细分和统计。

一个请求的响应时间可以分成网络链接(Connect),系统处理(Processing)和等待(Waiting)三个部分。

其中

min表示最小值; mean表示平均值;

[+/-sd]表示标准差(Standard Deviation) ,也称均方差(mean square error),表示数据的离散程度,数值越大表示数据越分散,系统响应时间越不稳定。

median表示中位数;

max当然就是表示最大值了。

##需要注意的是表中的Total并不等于前三行数据相加,因为前三行的数据并不是在同一个请求中采集到的,可能某个请求的网络延迟最短,但是系统处理时间又是最长的呢。所以Total是从整个请求所需要的时间的角度来统计的。这里可以看到最慢的一个请求花费了345ms,这个数据可以在下面的表中得到验证。

Percentage of the requests served within a certain time (ms)
50% 59
66% 62
75% 64
80% 65
90% 69
95% 78
98% 135
99% 173
100% 345 (longest request)

##这个表第一行表示有50%的请求都是在59ms内完成的,可以看到这个值是比较接近平均系统响应时间(第一个Time per request: 66.132 [ms] (mean))

以此类推,90%的请求是小于等于69ms的。刚才我们看到响应时间最长的那个请求是345ms,那么显然所有请求(100%)的时间都是小于等于345毫秒的,也就是表中最后一行的数据肯定是时间最长的那个请求(longest request)。

 

 

 

 

Apache ab性能测试结果分析

原文:https://www.cnblogs.com/ddzfeng/p/12198523.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!