ab压测

下载

apache下载

语法及参数

Usage: ab [options] [http[s]://]hostname[:port]/path
用法:ab [选项] 地址

选项:
Options are:
    -n requests    #执行的请求数,即一共发起多少请求。
    -c concurrency    #请求并发数。
    -t timelimit    #测试所进行的最大秒数。其内部隐含值是-n 50000,它可以使对服务器的测试限制在一个固定的总时间以内。默认时,没有时间限制。
    -s timeout    #指定每个请求的超时时间,默认是30秒。
    -b windowsize    #指定tcp窗口的大小,单位是字节。
    -B address    #指定在发起连接时绑定的ip地址是什么。
    -p postfile    #指定要POST的文件,同时要设置-T参数。
    -u putfile    #指定要PUT的文件,同时要设置-T参数。
    -T content-type    #指定使用POST或PUT上传文本时的文本类型,默认是'text/plain'。
    -v verbosity    #设置详细模式等级。
    -w    #将结果输出到html的表中。
    -i    #使用HEAD方式代替GET发起请求。
    -y attributes    #以表格方式输出时,设置html表格tr属性。 
    -z attributes    #以表格方式输出时,设置html表格th或td属性。
    -C attribute    #添加cookie,比如'Apache=1234'。(可重复)
    -H attribute    #为请求追加一个额外的头部,比如'Accept-Encoding: gzip'。(可重复)
    -A attribute    #对服务器提供BASIC认证信任。用户名和密码由一个:隔开,并以base64编码形式发送。无论服务器是否需要(即,是否发送了401认证需求代码),此字符串都会被发送。
    -P attribute    #对一个中转代理提供BASIC认证信任。用户名和密码由一个:隔开,并以base64编码形式发送。无论服务器是否需要(即, 是否发送了401认证需求代码),此字符串都会被发送。
    -X proxy:port   #指定代理服务器的IP和端口。
    -V              #打印版本信息。
    -k              #启用HTTP KeepAlive功能,即在一个HTTP会话中执行多个请求。默认时,不启用KeepAlive功能。
    -d              #不显示"percentage served within XX [ms] table"的消息(为以前的版本提供支持)。
    -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密码套件
    -f protocol     指定SSL/TLS协议(SSL3, TLS1, TLS1.1, TLS1.2 or ALL)

常用命令

  1. 表示一次发送1000请求,并发请求100个
$ ab -n 1000 -c 100 http://localhost:8030/buy/goods

This is ApacheBench, Version 2.3 <$Revision: 1874286 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking localhost (be patient)
Completed 100 requests
Completed 200 requests
Completed 300 requests
Completed 400 requests
Completed 500 requests
Completed 600 requests
Completed 700 requests
Completed 800 requests
Completed 900 requests
Completed 1000 requests
Finished 1000 requests


Server Software:
Server Hostname:        localhost
Server Port:            8030

Document Path:          /buy/goods //表示URL中根绝对路径
Document Length:        23 bytes  //表示http响应数据的正文长度

Concurrency Level:      100 //表示并发请求数
Time taken for tests:   0.557 seconds //表示整个测试持续的时间
Complete requests:      1000   //完成的请求数
Failed requests:        0
Total transferred:      140000 bytes  //整个场景中网络的传输量
HTML transferred:       23000 bytes  //整个场景中HTML内容传输量

//吞吐率,指的是某个并发用户数下单位时间内处理的请求数,后面括号中的 mean 表示这是一个平均值
Requests per second:    1796.91 [#/sec] (mean)
//用户平均请求等待时间,大家最关心的指标之二,相当于 LR 中的平均事务响应时间,后面括号中的 mean 表示这是一个平均值
Time per request:       55.651 [ms] (mean) 
//服务器平均请求处理时间,大家最关心的指标之三
Time per request:       0.557 [ms] (mean, across all concurrent requests)
//平均每秒网络上的流量,可以帮助排除是否存在网络流量过大导致响应时间延长的问题
Transfer rate:          245.67 [Kbytes/sec] received

//这段表示网络上消耗的时间的分解
Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   0.2      0       1
Processing:     7   53  12.1     50     108
Waiting:        3   52  12.1     50     108
Total:          7   53  12.1     50     108

//这段是每个请求处理时间的分布情况,50%的处理时间在50ms内,66%的处理时间在53ms内...,重要的是看90%的处理时间。
Percentage of the requests served within a certain time (ms)
  50%     50
  66%     53
  75%     54
  80%     56
  90%     62
  95%     82
  98%     95
  99%    102
 100%    108 (longest request)

Requests per second

Requests per second:    1796.91 [#/sec] (mean)

吞吐率:指的是某个并发用户数下单位时间内处理的请求数,后面括号中的 mean 表示这是一个平均值
计算方式:Complete requests / Time taken for tests
具体计算:1000/0.557 [#/sec]

Time per request

Time per request:       55.651 [ms] (mean) 

用户平均请求等待时间:相当于 LR 中的平均事务响应时间,后面括号中的 mean 表示这是一个平均值
计算方式:Time taken for tests / (Complete requests /Concurrency Level)
具体计算:0.557*1000 / (1000/1000) [ms]

Time per request (mean, across all concurrent requests)

Time per request:       0.557 [ms] (mean, across all concurrent requests) 

服务器平均请求处理时间
计算方式:Time taken for tests / Complete requests 吞吐量的倒数
具体计算:0.557*1000 /1000 [ms]

Transfer rate

Transfer rate:          245.67 [Kbytes/sec] received

平均每秒网络上的流量:可以帮助排除是否存在网络流量过大导致响应时间延长的问题
计算方式:Total transferred / Time taken for tests
具体计算:140000 / 1024 /0.557 [Kbytes/sec]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
abApache HTTP服务器自带的一个压测工具,也可以独立使用。以下是ab的用法和一个简单的案例: 1. 安装ab ab通常与Apache HTTP服务器一起安装,可以通过以下命令确认ab是否已经安装: ``` ab -V ``` 如果输出包含"ApacheBench"字样,则表示ab已经安装。 如果没有安装,则可以通过以下命令安装: Ubuntu/Debian系统: ``` sudo apt-get install apache2-utils ``` CentOS/RHEL系统: ``` sudo yum install httpd-tools ``` 2. 使用ab进行压测 以下是一个例子: ``` ab -n 1000 -c 100 http://localhost:8080/index.html ``` 这条命令表示发起1000个请求,每并发100个请求,访问http://localhost:8080/index.html页面,并输出压测结果。 3. 压测结果分析 ab的输出结果包含三个部分:请求的数量、请求的吞吐量和请求的延迟。其中,请求的数量和吞吐量可以直接用于评估系统的性能,而请求的延迟则可以用于优化系统的性能。 例如,以下是一条ab的输出结果: ``` Concurrency Level: 100 Time taken for tests: 2.256 seconds Complete requests: 1000 Failed requests: 0 Total transferred: 130000 bytes HTML transferred: 11000 bytes Requests per second: 443.72 [#/sec] (mean) Time per request: 225.602 [ms] (mean) Time per request: 2.256 [ms] (mean, across all concurrent requests) Transfer rate: 56.24 [Kbytes/sec] received ``` 其中,Requests per second表示每秒钟处理的请求数量,Time per request表示每个请求的平均延迟。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值