zoukankan      html  css  js  c++  java
  • 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)
  • 相关阅读:
    消息中间件(一)MQ详解及四大MQ比较
    SIP协议
    PAT (Basic Level) Practice 1008 数组元素循环右移问题
    LeetCode-Algorithms 1. 两数之和
    PAT (Basic Level) Practice 1040 有几个PAT
    PAT (Basic Level) Practice 1023 组个最小数
    PAT (Basic Level) Practice 1021 个位数统计
    PAT (Basic Level) Practice 1007 素数对猜想
    PAT (Basic Level) Practice 1006 换个格式输出整数
    PAT (Basic Level) Practice 1004 成绩排名
  • 原文地址:https://www.cnblogs.com/lonelyJay/p/9994920.html
Copyright © 2011-2022 走看看