1、ApacheBench命令原理:

  1. ab命令会创建很多的并发访问线程,模拟多个访问者同时对某一URL地址进行访问。
  2. 试目标是基于URL,可以用来测试Apache的负载压力,也可以测试nginx、lighthttp、tomcat、IIS等其它Web服务器的压力。
  3. ab命令对发出负载的计算机要求很低,既不会占用很高CPU,也不会占用很多内存,但却会给目标服务器造成巨大的负载,其原理类似CC攻击。自己测试使用也须注意,否则一次上太多的负载,可能造成目标服务器因资源耗完,严重时甚至导致死机。
    执行的程序

2、语法及参数

ab [options] [http[s]://]hostname[:port]/path

参数选项

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)

3、安装

3.1、Window系统

  1. 下载,解压
  2. 打开cmd命令行窗口,cd到apache安装目录的bin目录下

3.2、linux系统


yum install httpd-tools

4、案例

ab -n 4000 -c 1000 http://localhost:8080/EX2/responseCode

-n:后面的4000代表总共发出4000个请求;
-c:后面的1000表示采用1000个并发(模拟1000个人同时访问),

后面的网址表示测试的目标URL。

H:\java\Apache24\bin>ab -n 4000 -c 1000 http://localhost:8080/EX2/responseCodeThis is ApacheBench, Version 2.3 <$Revision: 1843412 $>
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 400 requests
Completed 800 requests
Completed 1200 requests
Completed 1600 requests
Completed 2000 requests
Completed 2400 requests
Completed 2800 requests
Completed 3200 requests
Completed 3600 requests
Completed 4000 requests
Finished 4000 requestsServer Software:        Apache-Coyote/1.1
Server Hostname:        localhost   //测试地址
Server Port:            8080        //测试端口Document Path:          /EX2/responseCode //测试的url
Document Length:        2 bytes     //文档大小(该测试返回的内容只有OK两字)Concurrency Level:      1000        //测试的并发数
Time taken for tests:   1.806       //seconds 整个测试持续的时间
Complete requests:      4000        //完成的请求数量
Failed requests:        0           //失败的请求数量
Non-2xx responses:      4000
Total transferred:      668000 bytes //整个过程中的网络传输量
HTML transferred:       8000 bytes   //整个过程中的HTML内容传输量
Requests per second:    2214.84 [#/sec] (mean)  //重要指标:相当于LR中的每秒事务数,后面括号中的mean表示这是一个平均值
Time per request:       451.500 [ms] (mean)     //重要指标:当于LR中的平均事务响应时间,后面括号中的mean表示这是一个平均值
Time per request:       0.452 [ms] (mean, across all concurrent requests)//每个连接请求实际运行时间的平均值
Transfer rate:          361.21 [Kbytes/sec] received //平均每秒网络上的流量,可以帮助排除是否存在网络流量过大导致响应时间延长的问题Connection Times (ms) min  mean[+/-sd] median   max
Connect:                0    0   8.0      0     504
Processing:             54  298 127.9    307     825
Waiting:                3  173 152.9    148     813
Total:                  54  298 128.1    307     825Percentage of the requests served within a certain time (ms)50%    30766%    31375%    31480%    31590%    31595%    31798%    82199%    824100%    825 (longest request)//其中50%的用户响应时间小于307毫秒,66%的用户响应时间小于313毫秒,最大的响应时间小于825毫秒。对于并发请求,cpu实际上并不是同时处理的,而是按照每个请求获得的时间片逐个轮转处理的,所以基本上第一个Time per request时间约等于第二个Time per request时间乘以并发请求数

性能压力测试工具之ApacheBench相关推荐

  1. Web必备性能压力测试工具WebBench与ApcheBench(ab)详解

    在运维工作中,压力测试是一项很重要的工作.比如在一个网站上线之前,能承受多大访问量.在大访问量情况下性能怎样,这些数据指标好坏将会直接影响用户体验.但是,在压力测试中存在一个共性,那就是压力测试的结果 ...

  2. Web服务器性能压力测试工具http_load、webbench、ab、Siege使用教程

    Web服务器性能压力测试工具http_load.webbench.ab.Siege使用教程 作者: feng 日期: 2012/07/25 发表评论 (0) 查看评论 一.http_load 程序非常 ...

  3. 【总结】个人推荐的接口测试工具和接口性能/压力测试工具

    一般接口有2种测试,现在很多是模糊了这个,但是如果细分.一般还要写<接口测试用例>和<接口性能测试用例>.同样,也分接口测试报告和接口性能测试报告. 接口的本质及其工作原理 接 ...

  4. 三种web性能压力测试工具

    三种web性能压力测试工具http_load webbench ab小结 题记:压力和性能测试工具很多,下文讨论的是我觉得比较容易上手,用的比较多的三种 http_load 下载地址:http://w ...

  5. Web性能压力测试工具——Siege详解

    Siege是一款开源的压力测试工具,设计用于评估WEB应用在压力下的承受能力.可以根据配置对一个WEB站点进行多用户的并发访问,记录每个用户所有请求过程的相应时间,并在一定数量的并发访问下重复进行. ...

  6. Web服务器性能/压力测试工具http_load、webbench、ab、Siege使用教程

    一.http_load 程序非常小,解压后也不到100K http_load以并行复用的方式运行,用以测试web服务器的吞吐量与负载.但是它不同于大多数压力测试工 具,它可以以一个单一的进程运行,一般 ...

  7. 服务器性能/压力测试工具http_load、webbench、ab、Siege使用教程

    一.http_load 程序非常小,解压后也不到100K http_load以并行复用的方式运行,用以测试web服务器的吞吐量与负载.但是它不同于大多数压力测试工 具,它可以以一个单一的进程运行,一般 ...

  8. (转)MySQL自带的性能压力测试工具mysqlslap详解

    mysqlslap 是 Mysql 自带的压力测试工具,可以模拟出大量客户端同时操作数据库的情况,通过结果信息来了解数据库的性能状况 mysqlslap 的一个主要工作场景就是对数据库服务器做基准测试 ...

  9. Web性能压力测试工具之WebBench详解

    在运维工作中,压力测试是一项很重要的工作.比如在一个网站上线之前,能承受多大访问量.在大访问量情况下性能怎样,这些数据指标好坏将会直接影响用户体验.但是,在压力测试中存在一个共性,那就是压力测试的结果 ...

最新文章

  1. linux openssh打补丁,openssh升级,打补丁
  2. 配置Windows 2008 R2 防火墙允许远程访问SQL Server 2008 R2
  3. python库管理_多版本python控制以及python三方库管理
  4. python语音在线编辑-Python实时语音识别控制
  5. python难度如何_入门Python学习难吗怎样规划学习路线
  6. 百度大脑险胜最强大脑背后:200万人2亿照片做训练
  7. 泰森怎么会输给道格拉斯_泰森24岁就被击败,如果能像他学习巅峰时期至少能延长三年...
  8. SpringBoot—启动报错Exception in thread “main“ java.lang.ClassNotFoundException
  9. 点赞时代,你为什么被人绝交?
  10. html编写输出学生姓名,用C++编写一个学生信息管理系统
  11. 蓝桥杯 ADV-166 算法提高 聪明的美食家 java版
  12. 先学python再学c_初学者Python和C先学哪个好?
  13. 基于数字证书的UKEY安全登录
  14. Facebook引流到独立站的三种技巧~附保姆级教程
  15. 交换机入门书籍推荐_网络工程学习方法/路线/专业书籍推荐
  16. 线性插值公式简单推导
  17. 梦幻西游战斗中服务器维护,梦幻西游10月22日维护公告 连续战斗自动问题修复...
  18. 苹果蓝牙耳机怎么接电话_如何在开车时可以更安全的接电话——ROMAN R6000蓝牙耳机...
  19. 问题:C-Kermitc Sorry, you must SET LINE or SET HOST first
  20. 【T3】登录提示运行时错误53,文件未找到

热门文章

  1. 【智能金融】机器学习在风控领域的应用
  2. 分贝(db)的概念介绍
  3. python中的linq - asq
  4. 最优控制学习笔记2----泛函
  5. JSP的小案例<用于JavaWeb简历展示>
  6. 优秀管理者的判断标准
  7. 指夹式血氧仪,脉搏血氧仪血氧饱和度监护仪
  8. u盘文件损坏怎么恢复数据?98%的人这样做
  9. vue页面缓存解决方案
  10. SCRUM 12.19