2.1 ab

  1. 参数

文档地址:https://httpd.apache.org/docs/2.0/programs/ab.html

ab [ -A auth-username:password ] [ -c concurrency ] [ -C cookie-name=value ] 
[ -d ] [ -e csv-file ] [ -g gnuplot-file ] [ -h ] [ -H custom-header ] 
[ -i ] [ -k ] [ -n requests ] [ -p POST-file ] 
[ -P proxy-auth-username:password ] [ -q ] [ -s ] [ -S ] [ -t timelimit ] 
[ -T content-type ] [ -v verbosity] [ -V ] [ -w ] [ -x <table>-attributes ] 
[ -X proxy[:port] ] [ -y <tr>-attributes ] [ -z <td>-attributes ] 
[http://]hostname[:port]/path
#服务器系统版本
[root@stache34 ~]# cat /etc/redhat-release 
CentOS Linux release 7.6.1810 (Core)

#安装apache时会自动安装ab命令
#如果不想安装apache,只想安装ab命令只需安装 httpd-tools 包即可
yum -y install httpd-tools

#安装的是httpd-tools-2.4.6
[root@stache34 ~]# rpm -qa | grep httpd-tools
httpd-tools-2.4.6-97.el7.centos.2.x86_64

#ab命令版本
[root@stache34 ~]# 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/

[root@stache34 ~]# ab -h
Usage: ab [options] [http[s]://]hostname[:port]/path
Options are:
    -n requests     #在测试会话中所执行的请求总个数,默认仅执行一个请求
    -c concurrency  #每次请求的并发数,相当于同时模拟多少个人访问url,默认是一次一个
    -t timelimit    #测试所进行的最大秒数。其内部隐含值是-n 50000
                    #它可以使对服务器的测试限制在一个固定的总时间以内
    -s timeout      #等待每个响应的最大值,默认为30秒
    -b windowsize   #TCP 发送/接收缓冲区的大小,以字节为单位
    -B address      #进行传出连接时要绑定到的地址
    -p postfile     #包含要 POST 的数据的文件,记得还要设置 -T 参数
    -u putfile      #包含要 PUT 的数据的文件,记得还要设置-T 参数
    -T content-type #POST/PUT 数据所使用的Content-type头信息
                    #例如:application/x-www-form-urlencoded 默认值:text/plain
    -v verbosity    #设置显示信息的详细程度 -4 或更大值会显示头信息
                    #3或更大值可以显示响应代码(404, 200等),2或更大值可以显示警告和其它信息
    -w              #以HTML表的格式输出结果,默认时,它是白色背景的两列宽度的一张表
    -i              #执行HEAD请求,而不是GET
    -x attributes   #以HTML表格格式输出结果时,给 table 标签设置的属性值
                    #如 -x 'sytle="width=500px"' 输出的html中table标签会加上该属性<table sytle="width=500px">
    -y attributes   #以HTML表格格式输出结果时,给 tr 标签设置的属性值
    -z attributes   #以HTML表格格式输出结果时,给 td 标签设置的属性值
    -C attribute    #对请求附加一个Cookie:行,形式为 name=value 的一个参数对,此参数可以重复
    -H attribute    #对请求附加额外的头信息,此参数的典型形式是一个有效的头信息行
                    #其中包含了以冒号分隔的字段和值的对 (如:"Accept-Encoding: zip/zop;8bit")
    -A attribute    #对服务器提供BASIC认证信任,用户名和密码由一个:隔开,并以base64编码形式发送
                    #无论服务器是否需要(即:是否发送了401认证需求代码)此字符串都会被发送
    -P attribute    #对一个中转代理提供BASIC认证信任,用户名和密码由一个:隔开,并以base64编码形式发送
                    #无论服务器是否需要(即:是否发送了401认证需求代码)此字符串都会被发送
    -X proxy:port   #对请求使用代理服务器
    -V              #显示版本号并退出
    -k              #启用 HTTP KeepAlive 功能,即在一个 HTTP 会话中执行多个请求,默认不启用 KeepAlive 功能
    -d              #不显示“XX [ms] 表内提供的百分比”(遗留支持)
    -S              #不显示中值和标准差值,当平均值和中值相差超过标准差的一倍或两倍时,
                    #也不显示警告或错误消息,默认会显示 min/avg/max 值(遗留支持)
    -q              #如果处理的请求数大于150,ab每处理大约10%或者100个请求时,会在stderr输出一个进度计数,此-q标记可以抑制这些信息
    -g filename     #把所有测试结果写入一个'gnuplot'或者TSV (以Tab分隔的)文件,
                    #此文件可以方便地导入到Gnuplot、IDL、Mathematica、Igor甚至Excel中,其中的第一行为标题
    -e filename     #产生一个以逗号分隔的(CSV)文件, 其中包含了处理每个相应百分比的请求所需要(从1%到100%)的相应百分比的(以微妙为单位)时间
                    #由于这种格式已经“二进制化”,所以比'gnuplot'格式更有用
    -r              #不要在套接字接收错误时退出
    -h              #显示帮助信息
    -Z ciphersuite  指定 SSL/TLS 密码套件(请参阅 openssl 密码)
    -f protocol     指定 SSL/TLS 协议(SSL2、SSL3、TLS1 或 ALL)

2.结果说明

Server Software:        Apache/2.4.6 #服务器软件版本
Server Hostname:        192.168.176.30 #服务器主机名
Server Port:            80 #服务器端口

Document Path:          /index.html #测试的页面
Document Length:        9 bytes #页面的字节数

Concurrency Level:      900 #请求的并发数,代表着访问的客户端数量
Time taken for tests:   0.489 seconds #整个测试花费的时间
Complete requests:      1000 #成功的请求数量
Failed requests:        0 #失败的请求数量
Write errors:           0
Total transferred:      267000 bytes #整个测试过程的总数据大小(包括header头信息等)
HTML transferred:       9000 bytes #整个测试过程HTML页面实际的字节数
Requests per second:    2045.81 [#/sec] (mean) #每秒处理的请求数,这是非常重要的参数,体现了服务器的吞吐量
                                               #后面括号中的 mean 表示这是一个平均值
Time per request:       439.923 [ms] (mean) #平均请求响应时间,括号中的 mean 表示这是一个平均值

#每个请求的时间 0.489[毫秒],意思为在所有的并发请求每个请求实际运行时间的平均值
#由于对于并发请求 cpu 实际上并不是同时处理的,而是按照每个请求获得的时间片逐个轮转处理的
#所以基本上第一个 Time per request 时间约等于第二个 Time per request 时间乘以并发请求数
Time per request:       0.489 [ms] (mean, across all concurrent requests)

Transfer rate:          533.43 [Kbytes/sec] received #传输速率,平均每秒的流量
                                                     #可以帮助排除是否存在网络流量过大导致响应时间延长的问题
Connection Times (ms) #连接时间
              min  mean[+/-sd] median   max #median中间
Connect:        0   17  11.8     21      34
Processing:     1  145 153.9     35     446
Waiting:        1  145 153.9     35     446
Total:         16  163 161.2     63     474
#connect连接、processing系统处理、waiting等待、总计,统计最大大小耗时
#min最小耗时,max最大耗时,mean平均值,[+/-sd]均方差(标准差,数值越大表示数据越分散,系统
#响应时间越不稳定),median中位数,表示一组数据中间的那个值
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%的请求是在106毫秒内完成的

3.示例

ab -n 1000 -c 2 -v  -x -H "Authorization: test"  "https://www.test.com/api/inspect/"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值