Linux入门实践笔记(六)——压力测试工具Apache Bench的安装、使用和结果解读

内容

  本文介绍了压力测试工具Apache Bench在Centos系统中的安装,常用的测试指令,以及测试结果的解读。

版本

​  操作系统: CentOS 7.2 64位

  Apache Bench:2.3

说明

  转载请说明出处:Linux入门实践笔记(六)——压力测试工具Apache Bench的安装、使用和结果解读

步骤

Apache Bench的介绍

​  Apache Bench,简称ab,是Apache服务器自带的基准性能测试的工具。可用于压力测试,用来测试系统的吞吐量、服务端请求平均处理时间、用户请求平均等待时间等性能指标。

  ab命令上手很简单,通过ab命令可以创建并发线程模拟多用户访问或调用某一URL地址。ab命令的选项、输出的介绍可以参考其当前版本官网文档

  首先,我们介绍下ab检测的性能指标:

吞吐量

  吞吐量(Requests per second)是在某个并发度下服务器每秒处理的请求数。它是服务器并发处理能力的量化描述,单位是reqs/s。计算公式为:总请求数/处理请求的总耗时。 吞吐量越大说明服务器的性能越好。

请求平均处理时间

  请求平均处理时间(Time per request,across all concurrent requests)是服务器处理请求的平均时间,计算公式为:处理请求的总耗时/总请求数。它是服务器吞吐量的倒数。也等于,用户请求平均等待时间/并发用户数。

请求平均等待时间

  请求平均等待时间(Time per request)是用户等待请求响应的平均时间,计算公式为:处理请求的总耗时/(总请求数/并发用户数)。

  “请求平均处理时间”和“请求平均等待时间”两个概念非常容易混淆,举一个例子进行说明:比如100个用户同时执行上传文档的操作,那么并发用户数为100,假设服务器可以同时处理这100个请求,并且每个文件上传操作的耗时都是1s。那么请求总耗时时间为1s,吞吐量为100reqs/s。请求平均处理时间为0.01s,请求平均等待时间为1s。也就是说,请求平均处理时间是从服务器的角度出发的,请求平均等待时间是从用户的角度出发的。

Apache Bench的安装

​   执行sudo yum -y install httpd-tools 安装apache httpd的工具包,这个工具包中包含压力测试工具Apache Bench。

#安装apache httpd的工具包
[root@Server ~]# yum install httpd-tools
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Resolving Dependencies
--> Running transaction check
---> Package httpd-tools.x86_64 0:2.4.6-80.el7.centos.1 will be installed
--> Finished Dependency Resolution
#中间省略
Installed:
  httpd-tools.x86_64 0:2.4.6-80.el7.centos.1
Complete!

  执行命令ab -V,如果成功打印ab的版本信息,则表明ab安装成功。

#成功打印ab的版本信息
[user1@Server ~]$ ab -V
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/
Apache Bench的使用和结果解读

  执行ab -n 100 -c 5 http://www.baidu.com/,对百度进行ab测试。命令中的-n表示总共请求100次,-c表示并发用户数为5,即使用5个并发线程同时请求。

  注意,此处填写的url不能只是域名,还要包含请求的路径,如果请求根目录,必须以"/"结尾。因此执行ab -n 100 -c 5 http://www.baidu.com是不行的。

#使用5个并发线程,对百度进行100次请求。
[user1@Server ~]$ ab -n 100 -c 5 http://www.baidu.com/
#打印ab的版本信息
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).....done#测试结果
#HTTP服务器信息
Server Software:       BWS/1.1
#服务器域名
Server Hostname:       www.baidu.com
#服务器端口号
Server Port:            80
#请求资源的标识符uri
Document Path:         /
#第一次成功请求响应的页面大小,如果后续请求响应的页面大小发生变化,会认为请求出错。
Document Length:        118155 bytes
#并发数
Concurrency Level:      5
#整个请求的总耗时
Time taken for tests:   1.244 seconds
#成功收到响应的请求数
Complete requests:      100
#失败请求数,失败包括连接,读取,不正确的内容长度或异常4种情况。
Failed requests:        98
   (Connect: 0, Receive: 0, Length: 98, Exceptions: 0)
#写入错误数
Write errors:           0
#测试过程从服务器接收到的数据总量(包含Header信息)
Total transferred:      11968154 bytes
#测试过程从服务器接收到的HTML页面的大小(不包含Hreader信息)
HTML transferred:       11872694 bytes
#服务器的吞吐量:平均每秒处理的请求数
Requests per second:    80.39 [#/sec] (mean)
#???
Time per request:       62.197 [ms] (mean)
#请求的平均处理时间,是服务器吞吐量的倒数
Time per request:       12.439 [ms] (mean, across all concurrent requests)
#每秒数据流量的大小
Transfer rate:          9395.67 [Kbytes/sec] received
#连接耗时
Connection Times (ms)
            #最小 平均                 最大
             min  mean[+/-sd] median   max
Connect:        6   10   5.3      7      34
Processing:    23   43  44.7     29     390
Waiting:        9   14   5.7     11      32
Total:         29   53  47.0     37     408
#特定耗时的请求数占比
Percentage of the requests served within a certain time (ms)
  50%     37            #50%的请求在37ms以内
  66%     55
  75%     60
  80%     63
  90%     76
  95%    102
  98%    273
  99%    408            #99%的请求在408ms以内
 100%    408 (longest request)
posted @ 2018-11-26 09:47  比脚更长的路  阅读(3833)  评论(0编辑  收藏  举报