Apache ab测试

Apache ab性能测试结果分析

转自:https://www.cnblogs.com/gumuzi/p/5617232.html

一直以来我都是用Loadrunner去做性能测试。Loadrunner实际上是一个很重的性能测试工具。他的功能很全面,是一把很好的牛刀。

  如果我们只是需要对一个页面做简单的性能测试,使用Loadruner这把牛刀就不是一个很好的选择了。

  所以就找了把小刀--ab来试试。这把小刀真的是轻巧又锋利,在这里就记录一下对ab测试过程中的一些自己的理解,供大家参考。

  我们就拿百度首页来祭刀吧。首先你得有一把刀,也就是安装好Apache,网上教程一大堆就不复述了,本文使用MacBook自带的ab命令进行测试。

  测试场景:模拟10个用户,对百度首页发起总共100次请求。

  测试命令: ab -n 100 -c 10  https://www.baidu.com/index.html

  本文主要针对ab的测试报告进行解析,有关ab的使用方法改天再新开贴交流。

  测试报告

  

下面来逐行解释我的理解,以下注释部分有查阅网上资料,但所写内容均为自己理解之后手打内容,希望加入自己的理解之后能让读者更容易理解。

bogon:~ tang$ ab -n 100 -c 10  https://www.baidu.com/index.html

This is ApacheBench, Version 2.3 <$Revision: 1706008 $>

Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/

Licensed to The Apache Software Foundation, http://www.apache.org/

//以上为apache的版本信息,与本次测试无关

Benchmarking www.baidu.com (be patient).....done

//以上内容显示测试完成度,本次测试发起请求数量较少,完成较快,无中间过程显示。在请求数量很多时会分行显示当前完成数量。

Server Software:        bfe/1.0.8.14    //被测试的服务器所用的软件信息,这里使用的是百度自己开发的反向代理Baidu Front End,类似nginx。

Server Hostname:        www.baidu.com //被测主机名

Server Port:            443 //被测主机的服务端口号,一般http请求的默认端口号是80,https默认使用443端口

SSL/TLS Protocol:       TLSv1.2,ECDHE-RSA-AES128-GCM-SHA256,2048,128  //加密协议

Document Path:          /index.html  //请求的具体文件

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

Concurrency Level:      10 //并发级别,也就是并发数,请求中-c参数指定的数量

Time taken for tests:   1.093 seconds //本次测试总共花费的时间

Complete requests:      100 //本次测试总共发起的请求数量

Failed requests:        0 //失败的请求数量。因网络原因或服务器性能原因,发起的请求并不一定全部成功,通过该数值和Complete requests相除可以计算请求的失败率,作为测试结果的重要参考。

Total transferred:      103314 bytes  //总共传输的数据量,指的是ab从被测服务器接收到的总数据量,包括index.html的文本内容和请求头信息。

HTML transferred:       22700 bytes //从服务器接收到的index.html文件的总大小,等于Document Length*Complete requests=227 bytes*100=22700 bytes

Requests per second:    91.50 [#/sec] (mean) //平均(mean)每秒完成的请求数:QPS,这是一个平均值,等于Complete requests/Time taken for tests=100/1.093=91.50

Time per request:       109.287 [ms] (mean) //从用户角度看,完成一个请求所需要的时间(因用户数量不止一个,服务器完成10个请求,平均每个用户才接收到一个完整的返回,所以该值是下一项数值的10倍。)

Time per request:       10.929 [ms] (mean, across all concurrent requests)// 服务器完成一个请求的时间。

Transfer rate:          92.32 [Kbytes/sec] received  //网络传输速度。对于大文件的请求测试,这个值很容易成为系统瓶颈所在。要确定该值是不是瓶颈,需要了解客户端和被测服务器之间的网络情况,包括网络带宽和网卡速度等信息。

Connection Times (ms)

min  mean[+/-sd] median   max

Connect:       47   74  12.9     74     106

Processing:     9   32  20.2     32     106

Waiting:        9   29  19.1     27      98

Total:         66  106  20.8    106     195

//这几行组成的表格主要是针对响应时间也就是第一个Time per request进行细分和统计。一个请求的响应时间可以分成网络链接(Connect),系统处理(Processing)和等待(Waiting)三个部分。表中min表示最小值; mean表示平均值;[+/-sd]表示标准差(Standard Deviation) ,也称均方差(mean square error),这个概念在中学的数学课上学过,表示数据的离散程度,数值越大表示数据越分散,系统响应时间越不稳定。 median表示中位数; max当然就是表示最大值了。

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

Percentage of the requests served within a certain time (ms)

50%    106

66%    109

75%    111

80%    114

90%    118

95%    154

98%    176

99%    195

100%    195 (longest request)

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

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

通过以上说明相信大家都能明白这些数据的意义了。如有错误还请留言指正。

原文地址:https://www.cnblogs.com/heqiyoujing/p/9405669.html

时间: 2024-08-29 11:31:07

Apache ab测试的相关文章

Apache ab测试工具使用方法(无参、get传参、post传参)(转)

转自Apache ab测试工具使用方法(无参.get传参.post传参) Ab测试工具是apache自带的测试工具,具有简单易上手的特性,下面我总结一下我的使用方法,首先去官方下载apache程序包,我下的最新版本apache2.4.23,下载地址http://httpd.apache.org/download.cgi 我下载的windows版本,解压后放到某一目录即可. 1.呼出控制台 可以使用系统自带cmd或者Xshell工具均可 2.进入apache下的bin目录ab.exe就在此处 3.

Apache ab 测试工具使用(一)

简述: 试用apache ab测试工具 下载点 http://httpd.apache.org/download.cgi 参考: http://jingyan.baidu.com/article/e3c78d647a57833c4c85f502.html ab的参数说明 -n  需要执行的请求次数 -c  并发的数量 -t   等待返回的最长时间 -b  TCP收发缓冲区的大小,单位(byte) -p 使用post (同时需要定义-T参数) -u 使用put (同时需要定义-T参数) -T co

Apache ab测试工具使用方法(无参、get传参、post传参)

Ab测试工具是apache自带的测试工具,具有简单易上手的特性,下面我总结一下我的使用方法,首先去官方下载apache程序包,我下的最新版本apache2.4.23,下载地址http://httpd.apache.org/download.cgi 我下载的windows版本,解压后放到某一目录即可. 1.呼出控制台 可以使用系统自带cmd或者Xshell工具均可 2.进入apache下的bin目录ab.exe就在此处 3.使用方法 直接在此目录下输入ab回车就会罗列出使用帮助 使用方式:ab [

php 压力测试 ab 命令 测试并发 apache ab 测试 apr_socket_connect(): 由于目标机器积极拒绝 无法连接

对于广大的编程人员来说压力测试是永远不会避免的一步,正如测试虐我千百遍我待测试如初恋下面小弟说一下自己遇到的压力测试的问题,个人拙见,仅供参靠!!! 一般情况下我们在windows平台上进行开发,那么开发环境的要么是Lnmp 要么就是  Lamp  也有的人用环境的集成包,不管用什么只要是apache就好,正如所说小弟使用的就是apache,下面就是我在用apache进行压力测试的时候的问题,通过 cmd命令行进行测试如下图报错 看见这个报错之后只听大脑中嗡的一声,我了个日,为啥报错啊,但是经过

MAC系统上安装Apache ab测试工具

第一步:下载 Apache HTTP Server http://httpd.apache.org/download.cgi#apache24 第二步:安装brew工具 https://brew.sh/index_zh-cn 第三步.正式安装 在正式安装之前,需要先安装apr和pcre,如果报错的话按照提示去做 brew install apr brew install pcre 然后进入到 httpd-2.4.38 的目录下 依次执行如下命令: ./configure make make in

【原创】Apache ab测试时出现:apr_socket_recv &quot;connection reset by peer&quot; 104

今天在用Apache自带的ab工具做以下简单的压测,本来是随便填几个参数,发现ab在1000并发以上报错:apr_socket_recv "connection reset by peer" 104 我用的是当前最新版本编译的,Apache 2.4.23 出了这样的问题,作为小白的我直接谷歌,然后百度,找到的都是一些看起来好高大上的答案,但是我并没有实验成功. 其中有一个是修改源代码的,通过这个答案的启发,我发现根本不用修改任何代码或者被测webserver的系统配置(这里仅针对ab出

如何使用、判断Apache AB压力测试

最近公司的一个项目(在线考试软件),客户提出500人在线,设计到登录和最后提交的问题(这两部分是和数据库进行数据的交换).所以在不确定前进行压力测试.在网上了解了一下Apache AB. 软件介绍: 开发语言:jsp   数据库sql2000 web服务 tomcat  服务器环境:win2003 .win2008(备选) 关于apache AB 测试: Apache附带的ab工具(本机使用的PHP环境是WAMP集成环境,ab工具位于apache\bin下)非常容易使用,ab可以直接在Web服务

apache ab linux 服务器安装

一直在网上找了许多安装apache ab测试的教程,很多都很杂,不清晰,茫茫百度文章中,终于找到了这篇文章,很有用,很不错,简单明了,感谢分享这篇文章的大神.自己也做过备份! 国内网站上介绍的方式比较老了,不好使. 下面是一种快速的方式. yum install httpd-tools 查看ab是否安装成功,可以切换到上述目录下,使用ab –V命令进行检测.如下: ab -V 如果ab安装成功,通过ab –V命令则会显示ab的相迎版本,如上图示. ab: wrong number of argu

开源性能测试工具Apache ab使用

Apache ab是著名的Web服务器软件Apache附带的一个小工具,它可以同时模拟多个并发请求,测试Apache等Web服务器的最大承载力. Apache ab基本用法是:AB [options] [http://]hostname[:port]/path,其中几个最常见的Options选项如下: -n:表示请求总数. -c:表示并发用户数,并发用户数不能大于请求总数,否则会报错. -URL:表示请求的目标URL. Apache ab实战: 用Apache ab来测试下金大叔的新浪博客首页h