美文网首页程序员
mac使用apache benchmark

mac使用apache benchmark

作者: CXY_XZL | 来源:发表于2022-03-21 16:10 被阅读0次

    1.apache benchmark简介

    1.apache benchmark简称ab
    2.ab是一款用于对你的http服务器做基准测试并展示服务器性能数据,尤其是RPS(requests per second)


    2.安装

    Mac系统默认安装了ab,所以我们不需要额外安装,当然,我们也可以使用一下命令检查一下系统是否已经安装了:

    xiongzelin@xiongzelindeMacBook-Pro ~ % ab -V
    This is ApacheBench, Version 2.3 <$Revision: 1879490 $>
    Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
    Licensed to The Apache Software Foundation, http://www.apache.org/
    

    以上信息显示,我的ab版本是2.3


    3.请求参数解释

    -A auth-username:password
    向服务器提供基本身份验证凭据。用户名和密码由单个分隔,:并通过 base64 编码的线路发送。无论服务器是否需要该字符串(即已发送需要的 401 身份验证),都会发送该字符串。
    
    -b windowsize
    TCP 发送/接收缓冲区的大小,以字节为单位。
    
    -B local-address
    进行传出连接时要绑定的地址。
    
    -c concurrency
    一次执行的多个请求数。默认是一次一个请求。
    
    -C cookie-name=value
    Cookie:在请求中添加一行。参数通常采用一 对的形式。该字段是可重复的。
    name=value
    
    -d
    不要显示“在 XX [ms] 表中提供的百分比”。(旧版支持)。
    
    -e csv-file
    编写一个逗号分隔值 (CSV) 文件,其中包含每个百分比(从 1% 到 100%)处理该百分比请求所需的时间(以毫秒为单位)。这通常比“gnuplot”文件更有用;因为结果已经被“装箱”了。
    
    -E client-certificate-file
    连接到 SSL 网站时,使用提供的 PEM 格式的客户端证书向服务器进行身份验证。该文件应包含客户端证书,然后是中间证书,然后是私钥。在 2.4.36 及更高版本中可用。
    
    -f protocol
    指定 SSL/TLS 协议(SSL2、SSL3、TLS1、TLS1.1、TLS1.2 或 ALL)。TLS1.1 和 TLS1.2 支持在 2.4.4 及更高版本中可用。
    
    -g gnuplot-file
    将所有测量值写为“gnuplot”或 TSV(制表符分隔值)文件。该文件可以轻松导入到 Gnuplot、IDL、Mathematica、Igor 甚至 Excel 等包中。标签位于文件的第一行。
    
    -h
    显示使用信息。
    
    -H custom-header
    将额外的标头附加到请求中。参数通常采用有效标题行的形式,包含一个以冒号分隔的字段值对(即,"Accept-Encoding: zip/zop;8bit")。
    
    -i
    做HEAD请求而不是GET.
    
    -k
    启用 HTTP KeepAlive 功能,即在一个 HTTP 会话中执行多个请求。默认为无 KeepAlive。
    
    -l
    如果响应的长度不是恒定的,则不要报告错误。这对于动态页面很有用。在 2.4.7 及更高版本中可用。
    
    -m HTTP-method
    请求的自定义 HTTP 方法。在 2.4.10 及更高版本中可用。
    
    -n requests
    为基准测试会话执行的请求数。默认情况下只执行一个请求,这通常会导致不具代表性的基准测试结果。
    
    -p POST-file
    包含要 POST 的数据的文件。记得也要设置-T。
    
    -P proxy-auth-username:password
    向代理途中提供基本身份验证凭据。用户名和密码由单个分隔,:并通过 base64 编码的线路发送。无论代理是否需要该字符串(即已发送需要的 407 代理身份验证),都会发送该字符串。
    
    -q
    当处理超过 150 个请求时,每 10% 或 100 个左右的请求ab输出一个进度计数。stderr该 -q标志将抑制这些消息。
    
    -r
    不要在套接字接收错误时退出。
    
    -s timeout
    在套接字超时之前等待的最大秒数。默认值为 30 秒。在 2.4.4 及更高版本中可用。
    
    -S
    不显示中位数和标准差值,也不要在平均值和中位数相差超过标准差的一倍或两倍时显示警告/错误消息。并默认为最小/平均/最大值。(旧版支持)。
    
    -t timelimit
    用于基准测试的最大秒数。这意味着 -n 50000内部。使用它在固定的总时间内对服务器进行基准测试。默认情况下没有时间限制。
    
    -T content-type
    用于 POST/PUT 数据的内容类型标头,例如。 application/x-www-form-urlencoded. 默认为text/plain。
    
    -u PUT-file
    包含要 PUT 的数据的文件。记得也要设置-T。
    
    -v verbosity
    设置详细级别 -4及以上打印标题信息,3以上打印响应代码(404、200 等), 2以上打印警告和信息。
    
    -V
    显示版本号并退出。
    
    -w
    在 HTML 表格中打印结果。默认表格为两列宽,白色背景。
    
    -x <table>-attributes
    用作 的属性的字符串<table>。属性被插入。<table here >
    
    -X proxy[:port]
    为请求使用代理服务器。
    
    -y <tr>-attributes
    用作 的属性的字符串<tr>。
    
    -z <td>-attributes
    用作 的属性的字符串<td>。
    
    -Z ciphersuite
    指定 SSL/TLS 密码套件(请参阅 openssl 密码)
    

    4.输出参数解释

    Server Software
    在第一个成功响应的服务器HTTP 标头中返回的值(如果有) 。这包括标题中从开始到该点的所有字符,检测到十进制值为 32 的字符(最值得注意的是:空格或 CR/LF)。
    
    Server Hostname
    命令行中给出的 DNS 或 IP 地址
    
    Server Port
    ab 连接的端口。如果在命令行上没有给出端口,则默认为 http 的 80 和 https 的 443。
    
    SSL/TLS Protocol
    客户端和服务器之间协商的协议参数。仅当使用 SSL 时才会打印。
    
    Document Path
    从命令行字符串解析的请求 URI。
    
    Document Length
    这是第一个成功返回的文档的大小(以字节为单位)。如果测试期间文档长度发生变化,则响应被视为错误。
    
    Concurrency Level
    测试期间使用的并发客户端数
    
    Time taken for tests
    这是从创建第一个套接字连接到收到最后一个响应的时间
    
    Complete requests
    收到的成功响应数
    
    Failed requests
    被视为失败的请求数。如果数字大于零,将打印另一行显示由于连接、读取、不正确的内容长度或异常而失败的请求数。
    
    Write errors
    写入期间失败的错误数(管道损坏)。
    
    Non-2xx responses
    不在 200 系列响应代码中的响应数。如果所有响应都是 200,则不打印此字段。
    
    Keep-Alive requests
    导致 Keep-Alive 请求的连接数
    
    Total body sent
    如果配置为作为测试的一部分发送数据,则这是测试期间发送的总字节数。如果测试不包含要发送的正文,则省略此字段。
    
    Total transferred
    从服务器接收的字节总数。这个数字本质上是通过线路发送的字节数。
    
    HTML transferred
    从服务器接收到的文档字节总数。此数字不包括 HTTP 标头中收到的字节数
    
    Requests per second
    这是每秒的请求数。该值是请求数除以所用总时间的结果
    
    Time per request
    每个请求花费的平均时间。第一个值用公式计算,concurrency * timetaken * 1000 / done 第二个值用公式计算 timetaken * 1000 / done
    
    Transfer rate
    由公式计算的传输率 totalread / 1024 / timetaken
    

    5.示例

    xiongzelin@xiongzelindeMacBook-Pro ~ % ab -n 20 -c 20 https://www.baidu.com/
    This is ApacheBench, Version 2.3 <$Revision: 1879490 $>
    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
    
    
    Server Software:        BWS/1.1
    Server Hostname:        www.baidu.com
    Server Port:            443
    SSL/TLS Protocol:       TLSv1.2,ECDHE-RSA-AES128-GCM-SHA256,2048,128
    Server Temp Key:        ECDH P-256 256 bits
    TLS Server Name:        www.baidu.com
    
    Document Path:          /
    Document Length:        227 bytes
    
    Concurrency Level:      20
    Time taken for tests:   0.224 seconds
    Complete requests:      20
    Failed requests:        0
    Total transferred:      22220 bytes
    HTML transferred:       4540 bytes
    Requests per second:    89.12 [#/sec] (mean)
    Time per request:       224.422 [ms] (mean)
    Time per request:       11.221 [ms] (mean, across all concurrent requests)
    Transfer rate:          96.69 [Kbytes/sec] received
    
    Connection Times (ms)
                  min  mean[+/-sd] median   max
    Connect:       83   97   7.9     92     112
    Processing:    13   14   1.0     14      16
    Waiting:       13   14   1.0     14      16
    Total:         98  112   7.6    108     126
    
    Percentage of the requests served within a certain time (ms)
      50%    108
      66%    116
      75%    117
      80%    120
      90%    123
      95%    126
      98%    126
      99%    126
     100%    126 (longest request)
    

    相关文章

      网友评论

        本文标题:mac使用apache benchmark

        本文链接:https://www.haomeiwen.com/subject/hlltjrtx.html