`
tcxiang
  • 浏览: 88016 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

ab压力测试

 
阅读更多

ab参数详解 – 压力测试

 

1、使用ab发送post请求

ab -n 100000 -c 149  -H keywords:dt -p  /root/file/param.conf  -T 'application/x-www-form-urlencoded'  http://cc-tt.chinacloudapp.cn/restaurant

解释:-p:包含post请求的参数文件。文件内容类似:sk=1babb55a0b4b4dd2a&apitype=restaurant&p=tJoLaT4mon

-T:content-type 。请求内容类型

n:总请求数

c:并发客户端数

H:自定义消息头

 

Apache附带的ab,它非常容易使用,ab可以直接在Web服务器本地发起测试请求。这至关重要,因为我们希望测试的服务器的处理时间,而不包含数据的网络传输时间以及用户PC本地的计算时间。

需要清楚的是,ab进行一切测试的本质都是基于HTTP,所以可以说它是对于Web服务器软件的黑盒性能测试,它获得的一切数据和计算结果,都可以通过HTTP来解释。

另有一些压力测试软件,包括LoadRnner、Jmeter等,则是不同程度上包含了服务器处理之外的时间,比如LoadRunner运行在用户PC上,可以录制浏览器行为,这种测试的结果玩玩侧重于站点用户的角度,有另外一些层面的参考意义。

接下来,将使用ab来进行一次压力测试,在本书中我们使用Apache 2.3中附带的ab,其版本信息如下所示:

[root@localhost ~]#/usr/local/apache/bin/ab -VThisisApacheBench,Version2.3<$Revision:655654 $>Copyright1996AdamTwiss,ZeusTechnologyLtd, http://www.zeustech.net/Licensed to TheApacheSoftwareFoundation, http://www.apache.org/

请看下面的命令行信息:

[root@localhost ~]#/usr/local/apache/bin/ab -n1000 -c10 http://localhost/index.htmlThisisApacheBench,Version2.3<$Revision:655654 $>Copyright1996AdamTwiss,ZeusTechnologyLtd, http://www.zeustech.net/Licensed to TheApacheSoftwareFoundation, http://www.apache.org/Benchmarking localhost (be patient)Completed100 requests
Completed200 requests
Completed300 requests
Completed400 requests
Completed500 requests
Completed600 requests
Completed700 requests
Completed800 requests
Completed900 requests
Completed1000 requests
Finished1000 requests
 
ServerSoftware:Apache/2.2.19ServerHostname:        localhost
ServerPort:80DocumentPath:/index.html
DocumentLength:45 bytes
 
ConcurrencyLevel:10Time taken for tests:0.454 seconds
Complete requests:1000Failed requests:0Write errors:0Total transferred:322644 bytes
HTML transferred:45090 bytes
Requests per second:2204.64[#/sec] (mean)Time per request:4.536[ms](mean)Time per request:0.454[ms](mean, across all concurrent requests)Transfer rate:694.64[Kbytes/sec] received
 
ConnectionTimes(ms)
              min  mean[+/-sd] median   max
Connect:010.515Processing:135.6262Waiting:035.6262Total:145.6363Percentage of the requests served within a certain time (ms)50%366%475%480%490%695%1298%2699%33100%63(longest request)

请注意我们在启动ab时,传入3个命令行参数,它们正是代表了前面提到的前提条件:
-n1000 表示总请求数位1000
-c 表示并发用户数为10
http://localhost/index.html 表示这些请求的目标URL。
测试结果一目了然,我们看到吞吐率显示为2204.64reqs/s。同时,在测试结果中还有一些其他内容也值得我们关注,主要包括:
Server Software
表示被测试的Web服务器软件名称,这里是Apache/2.2.19,它来自于http响应数据的头信息,所以如果是我们自己编写的Web服务器软或者修改开源Web服务器软件的源代码,便可以随意改写这里的名称。
vi /usr/local/apache/conf/httpd.conf #隐藏具体版本信息
ServerSignature Off
ServerTokens Prod

Server Hostname
表示请求的URL中的主机部分名称,它来自于http请求数据的头信息,这里我们请求的URL是http://localhost/index.html,所以主机名为localhost,说明我们的请求是从Web服务器端发起的。

Server Port
表示被测试的Web服务器软件的监听端口,为了方便测试,我们后面会对多个不同的Web服务器软件使用不同的监听端口。

Document Path
表示请求的URL中根绝对路径,它同样来自于http请求数据的头信息,通过它的后缀名,我们一般可以理解该请求的类型。

Document Length
表示http响应数据的正文长度。

Concurrency Level
表示并发用户数,这是我们设置的参数。

Time taken for tests
表示所有这些请求被处理完成花费的总时间。顺便提一下,某些Apache版本如2.2.4附带的ab,对于这一统计项存在一些计算上的bug,当总请求数较少时,其统计的总时间会无法小于0.1s。

Complete requests
表示总请求数,这是我们设置的相应参数。

Failed requests
表示失败的请求数,这里的失败是指请求的连接服务器、发送数据、接收数据等环节发生异常,以及无响应后超时的情况。对于超时时间的设置可以用ab的-t参数。
而如果接受到的http响应数据的头信息中含有2xx以外的状态码,则会在测试结果显示另一个名为“Non-2xx responses”的统计项,用于统计这部分请求数,这些请求并不算是失败的请求。

Total transferred
表示所有请求的响应数据长度总和,包括每个http响应数据的头信息和正文数据的长度。注意这里不包括http请求数据的长度,所以Total
transferred代表了从Web服务器流向用户PC的应用层数据总长度。通过使用ab的-v参数即可查看详细的http头信息。

HTML transferred
表示所有请求的响应数据中正文数据的总和,也就是减去了Total transferred中http响应数据中头信息的长度。

Requests per second
这便是我们重点关注的吞吐率,它等于:
Complete requests / Time taken for tests

Time per request
这便是前面提到的用户平均请求等待时间,它等于:
Time taken for tests / (Complete requests /Concurrency Level)

Time per request?(across all concurrent requests)
这便是前面提到的服务器平均请求处理时间,它等于:
Time taken for tests / Complete requests

这正是吞吐率的倒数。同时,它也等于:
Time per request / Concurrency Level

Transfer rate
表示这些请求在单位时间内从服务器获取的数据长度,它等于:
Total transferred / Time taken for tests
这个统计项可以很好的说明服务器在处理能力达到限制时,其出口带宽的需求量。
利用前面介绍的有关带宽的知识,不难计算出结果。

Percentage of the requests served within a certain time(ms)
这部分数据用于描述每个请求处理时间的分布情况,比如在以上测试结果中,80%请求的处理时间都不超过1ms,而99%的请求都不超过2ms。注意这里的处理时间,是指前面的Time per request,即对于单个用户而言,平均每个请求处理的时间。

继续压力测试
下面,我们再来进行一次压力测试,此时并发用户数为100,其他条件不变,测试结果如下所示:

[root@localhost ~]#/usr/local/apache/bin/ab -n1000 -c100 http://localhost/index.htmlThisisApacheBench,Version2.3<$Revision:655654 $>Copyright1996AdamTwiss,ZeusTechnologyLtd, http://www.zeustech.net/Licensed to TheApacheSoftwareFoundation, http://www.apache.org/Benchmarking localhost (be patient)Completed100 requests
Completed200 requests
Completed300 requests
Completed400 requests
Completed500 requests
Completed600 requests
Completed700 requests
Completed800 requests
Completed900 requests
Completed1000 requests
Finished1000 requests
 
ServerSoftware:Apache/2.2.19ServerHostname:        localhost
ServerPort:80DocumentPath:/index.html
DocumentLength:45 bytes
 
ConcurrencyLevel:100Time taken for tests:0.369 seconds
Complete requests:1000Failed requests:0Write errors:0Total transferred:283648 bytes
HTML transferred:46080 bytes
Requests per second:2711.45[#/sec] (mean)Time per request:36.881[ms](mean)Time per request:0.369[ms](mean, across all concurrent requests)Transfer rate:751.07[Kbytes/sec] received
 
ConnectionTimes(ms)
              min  mean[+/-sd] median   max
Connect:0123.41219Processing:112318.917122Waiting:61918.313114Total:203517.130128Percentage of the requests served within a certain time (ms)50%3066%3275%3480%3590%5395%7598%9999%114100%128(longest request)

和前一次的测试结果相比,可以看出,当并发用户数据从原来的10变为100后,吞吐率从原来的2204.64增长到了2711.45,服务器平均请求处理
时间从原来的0.454ms降到了0.369ms,而用户评价请求等待时间从原来的4.536ms增加到了36.881ms.
可见,随着并发用户数的变化,吞吐率、用户平均请求等待时间、服务器配件请求处理时间都发生了相应的变化。

分享到:
评论

相关推荐

    Apache ab压力测试工具

    Apache ab压力测试工具是HTTP服务器性能评估的重要工具,主要用于测试Apache服务器在特定条件下的处理能力。这个工具简单易用,可以提供对服务器性能的详细分析,帮助管理员优化配置,提升服务器响应速度,确保在高...

    window安装ab压力测试并使用.zip

    【标题】:“Window环境下安装与使用Apache Bench (ab) 压力测试工具” 在IT领域,性能测试是评估系统承载能力的关键环节,而Apache Bench(简称ab)是一款广泛使用的命令行工具,用于进行HTTP服务器的压力测试。在...

    ab 压力测试工具

    "ab压力测试工具"是Apache HTTP服务器项目的一部分,它是一个简单但功能强大的命令行工具,用于对Web服务器进行性能测试和负载测试。这个工具能够模拟多个并发用户向服务器发送HTTP请求,帮助管理员评估服务器在高...

    ab压力测试分析1

    ab压力测试分析1 ab压力测试工具是Apache自带的一个功能强大且易用的压力测试工具,当安装完Apache时,就可以在bin下面找到ab。下面是对ab压力测试分析的详细说明: 1. ab命令参数解释 在使用ab工具时,需要指定...

    AB压力测试实例.pdf

    Apache附带的压⼒测试工具apache bench--简称ab,⾮常容易使⽤, 并且完全可以模拟各种条件对Web服务器发起测试请求。ab可以直接在Web服务器本地发起测试请求,这对于了解服务器的处理性能至关重要,因为它不包括...

    Apache ab压力测试

    NULL 博文链接:https://2279972332.iteye.com/blog/1989163

    AB压力测试工具.pdf

    AB压力测试工具 ApacheBench是一个功能强大的压力测试工具,专门用来测试Apache服务器的执行效率。它可以模拟出连续的联机请求,同时也可以模拟出同时间点数个相同的联机请求,从而帮助我们在网站开发期间仿真实际...

    ab压力测试hhvm运行ci

    在"ab压力测试hhvm运行ci"这个场景中,"ab"工具(ApacheBench)被用于模拟大量并发用户对HHVM运行的CI环境进行压力测试。ApacheBench是Apache HTTP服务器自带的一个基准测试工具,它可以测量一个Web服务器在特定负载...

    ab压力测试的安装、使用、破2万并发测试

    【AB压力测试详解】 AB压力测试,全称为Apache Bench,是Apache HTTP服务器自带的一款轻量级的压力测试工具。它的主要功能是模拟多个并发用户对指定的URL进行访问,以此来评估服务器在高并发情况下的性能表现。无论...

    RHEL5.4下搭建Apache+Mysql+Php+Discuz+PhpMyAdmin+Awstats+AB压力测试

    根据给定的信息,本文将详细解释如何在RHEL ...以上步骤提供了在RHEL 5.4环境中搭建LAMP、Discuz论坛、Awstats、AB压力测试及phpMyAdmin的基本流程。在实际操作过程中可能还会遇到各种问题,需要根据具体情况进行调整。

    下最新源码搭建Apache+Mysql+Php+Discuz+PhpMyAdmin+Awstats+AB压力测试

    AB压力测试 1. **下载并安装AB工具**: - AB工具通常包含在Apache的二进制发行版中。 2. **执行压力测试**: - 使用AB工具对网站进行性能测试,评估并发用户数下的响应时间和吞吐量。 ### 结论 通过以上步骤,...

    压力测试工具-ab

    **AB压力测试工具详解** 在IT行业中,性能测试是评估系统稳定性和承载能力的重要环节,而`ab`(ApacheBench)就是一个广泛使用的轻量级压力测试工具。它由Apache HTTP服务器项目开发,主要用于测试Web服务器的性能...

    压力测试工具ab

    **压力测试工具ab详解** 压力测试是评估系统在高负载或大量并发请求下性能的重要手段。在IT行业中,尤其在服务器优化和应用性能管理中,压力测试工具扮演着至关重要的角色。"ab"(ApacheBench)就是这样一个简单而...

    Apache Benchmark(简称ab压力测试工具) 是Apache安装包中自带的压力测试工具 ,简单易用

    -n 即requests,用于指定压力测试总共的执行次数。 -c 即concurrency,用于指定的并发数。 -t 即timelimit,等待响应的最大时间(单位:秒)。 -b 即windowsize,TCP发送/接收的缓冲大小(单位:字节)。 -p 即...

    分布式TCP压力测试工具 tcpcopy

    1)分布式压力测试工具,利用在线数据,可以测试系统能够承受的压力大小(远比ab压力测试工具真实地多),也可以提前发现一些bug 2)普通上线测试,可以发现新系统是否稳定,提前发现上线过程中会出现的诸多问题,让...

    几个linux服务器性能测试工具,服务器压力测试

    5、Apache ab 压力测试:ab的全称是ApacheBench,ab是Apache 附带的超文本传输协议(HTTP)的性能测试工具。 其设计意图是描绘当前所安装的Apache的执行性能,主要是显示你安装的Apache每秒可以处理多少个请求;

    Apache 压力测试工具ab 专注接口测试 并发测试

    Apache的ab(ApacheBench)是一款简单而强大的压力测试工具,专用于接口和并发测试。在Web服务性能优化和系统负载能力评估中,ab扮演着关键角色。它可以帮助开发者和运维人员了解服务器在高并发情况下的表现,以及...

Global site tag (gtag.js) - Google Analytics