设为首页 收藏本站
查看: 905|回复: 0

[经验分享] ab工具

[复制链接]
累计签到:11 天
连续签到:1 天
发表于 2016-11-2 15:13:07 | 显示全部楼层 |阅读模式
一般把apache压力测试称为AB测试. ab工具的位置在apache的bin目录里;

一、ab独立安装
ab运行需要依赖apr-util包,安装命令为:

  •     yum install apr-util

安装依赖 yum-utils中的yumdownload 工具

如果没有找到 yumdownload 命令可以

  •     yum install yum-utils

安装完成后执行以下指令 :


  •     cd /opt
  •     mkdir abtmp
  •     cd abtmp
  •     yum install yum-utils.noarch
  •     yumdownloader httpd-tools*
  •     rpm2cpio httpd-*.rpm | cpio -idmv

解开后就能得到独立的 ab可执行文件了。

操作完成后 将会产生一个 usr 目录 ab文件就在这个usr 目录中



ab -n 3000 -c 3000  http://www.yilvs.com/

-n:测试会话中所执行的请求个数,默认时,仅执行一个请求;最大请求数不超过50000个  即并发数;
-c:一次产生的请求个数。默认是一次一个
-t:测试所进行的最大秒数
-v:设置显示信息的详细程度 - 4或更大值会显示头信息, 3或更大值可以显示响应代码(404, 200等), 2或更大值可以显示警告和其他信息。 -V 显示版本号并退出。


ab命令的参数介绍

-n
    即requests,用于指定压力测试总共的执行次数。
-c
    即concurrency,用于指定压力测试的并发数。
-t
    即timelimit,等待响应的最大时间(单位:秒)。
-b
    即windowsize,TCP发送/接收的缓冲大小(单位:字节)。
-p
    即postfile,发送POST请求时需要上传的文件,此外还必须设置-T参数。
-u
    即putfile,发送PUT请求时需要上传的文件,此外还必须设置-T参数。
-T
    即content-type,用于设置Content-Type请求头信息,例如:application/x-www-form-urlencoded,默认值为text/plain。
-v
    即verbosity,指定打印帮助信息的冗余级别。
-w
    以HTML表格形式打印结果。
-i
    使用HEAD请求代替GET请求。
-x
    插入字符串作为table标签的属性。
-y
    插入字符串作为tr标签的属性。
-z
    插入字符串作为td标签的属性。
-C
    添加cookie信息,例如:"Apache=1234"(可以重复该参数选项以添加多个)。
-H
    添加任意的请求头,例如:"Accept-Encoding: gzip",请求头将会添加在现有的多个请求头之后(可以重复该参数选项以添加多个)。
-A
    添加一个基本的网络认证信息,用户名和密码之间用英文冒号隔开。
-P
    添加一个基本的代理认证信息,用户名和密码之间用英文冒号隔开。
-X
    指定使用的代理服务器和端口号,例如:"126.10.10.3:88"。
-V
    打印版本号并退出。
-k
    使用HTTP的KeepAlive特性。
-k
    使用HTTP的KeepAlive特性。
-d
    不显示百分比。
-S
    不显示预估和警告信息。
-g
    输出结果信息到gnuplot格式的文件中。
-e
    输出结果信息到CSV格式的文件中。
-r
    指定接收到错误信息时不退出程序。
-h
    显示用法信息,其实就是ab -help。



Server Software:
被测试web服务软件名称他来自于http响应数据的头信息
Server Hostname:
表示请求的url中的主机部分名称
Server Port:
测试web服务器软件的监听端口
Document Path:
请求的url根的绝对路径
Document Length:
表示http响应数据的正文长度
Concurrency Level:
并发的用户数
Time taken for tests:
表示所有这些请求被处理完成所花费的时间总和
Complete requests:
表示总请求书
Failed requests:
失败的请求总数
Write errors:
Total transferred:
所有请求的响应数据长度总和
HTML transferred:
所有请求的响应数据中正文数据的总和,也就是减去了Total transferred 中的HTML响应数据中头信息的长度
Requests per second:132.12 [#/sec] (mean)
重点:吞吐率,他等于Complete requests / Time taken for tests(相当于 LR 中的 每秒事务数 ,后面括号中的 mean 表示这是一个平均值)
Time per request:
用户平均请求等待时间,他等于Time taken for tests /(Complete requests / Concurrency Level)【相当于 LR 中的 平均事务响应时间】
Time per request: 9.289 [ms] (mean, across all concurrent requests)
服务器平均请求处理时间他等于Time taken for tests / Complete requests (每个请求实际运行时间的平均值)
Transfer rate:
请求在单位时间内从服务器获取数据的长度他等于Total transferred / Time taken for tests
这个统计选项可以很好的说明服务器在处理能力达到极限时其出口带宽的需求量
Percentage of the requests served within a certain time (ms)
用于描述每个请求处理时间的分布情况,例如:50% 1 50%请求处理时间不超过1秒 (这里所指的处理时间是指:Time per request )
..........
100% 10 100%请求处理时间不超过10秒



执行ab命令的详情:
Server Software:        Apache/2.2.25 (服务器软件名称及版本信息)
Server Hostname:        localhost (服务器主机名)
Server Port:            80 (服务器端口)
Document Path:          /index.php (供测试的URL路径)
Document Length:        10 bytes (供测试的URL返回的文档大小)
Concurrency Level:      100 (并发数)
Time taken for tests:   0.247 seconds (压力测试消耗的总时间)
Complete requests:      1000 (压力测试的总次数)
Failed requests:        0 (失败的请求数)
Write errors:           0 (网络连接写入错误数)
Total transferred:      198000 bytes (传输的总数据量)
HTML transferred:       10000 bytes (HTML文档的总数据量)
Requests per second:    4048.34 [#/sec] (mean) (平均每秒的请求数)
Time per request:       24.701 [ms] (mean) (所有并发用户(这里是100)都请求一次的平均时间)
Time per request:       0.247 [ms] (mean, across all concurrent requests) (单个用户请求一次的平均时间)
Transfer rate:          782.78 [Kbytes/sec] received (传输速率,单位:KB/s)
Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   0.3      0       1
Processing:     6   23   4.2     24      30
Waiting:        5   20   5.3     21      29
Total:          6   23   4.2     24      30

Percentage of the requests served within a certain time (ms)
  50%     24
  66%     25
  75%     26
  80%     26
  90%     27
  95%     27
  98%     28
  99%     29
100%     30 (longest request)



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-294713-1-1.html 上篇帖子: split命令分割文件 下篇帖子: tomcat报错could not find or load main class org.apache.cataline.startup.boo... 压力测试 执行文件
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表