apacheBench对网站进行压力测试

分类: 学习 2014-02-19 10:35 4154人阅读 评论(1) 收藏 举报
apacheBench压力测试

Apache Benchmark下载

ab 的全称是 ApacheBench , 是 Apache 附带的一个小工具 , 专门用于 HTTP Server 的 benchmark testing , 可以同时模拟多个并发请求。前段时间看到公司的开发人员也在用它作一些测试,看起来也不错,很简单,也很容易使用,所以今天花一点时间看了一下。

通过下面的一个简单的例子和注释,相信大家可以更容易理解这个工具的使用。

一个简单的例子

/* 在这个例子的一开始,我执行了这样一个命令 ab -n 10 -c 10 http://www.google.com/  这个命令的意思是启动 ab ,向 www.google.com 发送10个请求(-n 10)   ,并每次发送10个请求 (-c 10)——也就是说一次都发过去了 。跟着下面的是 ab 输出的测试报告,红色部分是我添加的注释。 */

C:\Program Files\Apache Software Foundation\Apache2.2\bin>ab -n 10 -c 10 http

://www.google.com/

This is ApacheBench, Version 2.0.40-dev <$Revision: 1.146 $> apache-2.0

Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/

Copyright 1997-2005 The Apache Software Foundation, http://www.apache.org/

Benchmarking www.google.com (be patient).....done

Server Software:        GWS/2.1

Server Hostname:        www.google.com

Server Port:            80

Document Path:          /

Document Length:        230 bytes

Concurrency Level:      10

/* 整个测试持续的时间 * /

Time taken for tests:   3.234651 seconds

/* 完成的请求数量 */

Complete requests:      10

/* 失败的请求数量 */

Failed requests:        0

Write errors:           0

Non-2xx responses:      10

Keep-Alive requests:    10

/* 整个场景中的网络传输量 */

Total transferred:      6020 bytes

/* 整个场景中的 HTML 内容传输量 */

HTML transferred:       2300 bytes

/* 大家最关心的指标之一,相当于 LR 中的 每秒事务数 ,后面括号中的 mean 表示这是一个平均值 */

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

/* 大家最关心的指标之二,相当于 LR 中的 平均事务响应时间 ,后面括号中的 mean 表示这是一个平均值 */

Time per request:       3234.651 [ms] (mean)

/* 这个还不知道是什么意思,有知道的朋友请留言,谢谢 ^_^ */

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

/* 平均每秒网络上的流量,可以帮助排除是否存在网络流量过大导致响应时间延长的问题 */

Transfer rate:          1.55 [Kbytes/sec] received

/* 网络上消耗的时间的分解,各项数据的具体算法还不是很清楚 */

Connection Times (ms)

min  mean[+/-sd] median   max

Connect:       20  318 926.1     30    2954

Processing:    40 2160 1462.0   3034    3154

Waiting:       40 2160 1462.0   3034    3154

Total:         60 2479 1276.4   3064    3184

/* 下面的内容为整个场景中所有请求的响应情况。在场景中每个请求都有一个响应时间,其中 50 % 的用户响应时间小于 3064 毫秒, 60 % 的用户响应时间小于 3094 毫秒,最大的响应时间小于 3184 毫秒 */

Percentage of the requests served within a certain time (ms)

50%   3064

66%   3094

75%   3124

80%   3154

90%   3184

95%   3184

98%   3184

99%   3184

100%   3184 (longest request)

更多信息

ab 不像 LR 那么强大,但是它足够轻便,如果只是在开发过程中想检查一下某个模块的响应情况,或者做一些场景比较简单的测试, ab 还是一个不错的选择——至少不用花费很多时间去学习 LR 那些复杂的功能,就更别说那 License 的价格了。

下面是 ab 的详细参数解释,大家有兴趣的可以研究一下,最近没有足够多的时间研究,如果哪位朋友有兴趣希望可以帮忙翻译一下每个参数的含义,有问题讨论也欢迎在这里回帖 ^_^

ab [ - auth-username password ] [ - concurrency ] [ - cookie-name value ] [ - ] [ - ecsv-file ] [ - gnuplot-file ] [ - ] [ - custom-header ] [ - ] [ - ] [ - requests ] [ - pPOST-file ] [ - proxy-auth-username password ] [ - ] [ - ] [ - ] [ - timelimit ] [ - Tcontent-type ] [ - verbosity ] [ - ] [ - ] [ - <table>-attributes ] [ - proxy [: port ] ] [ - y<tr>-attributes ] [ - <td>-attributes ] [http://] hostname [: port ]/ path

-A auth-username password

Supply BASIC Authentication credentials to the server. The username and password are separated by a single and sent on the wire base64 encoded. The string is sent regardless of whether the server needs it (i.e. , has sent an 401 authentication needed).

-c concurrency

Number of multiple requests to perform at a time. Default is one request at a time.

-C cookie-name value

Add a Cookie: line to the request. The argument is typically in the form of a name value pair. This field is repeatable.

-d

Do not display the "percentage served within XX [ms] table". (legacy support).

-e csv-file

Write a Comma separated value (CSV) file which contains for each percentage (from 1% to 100%) the time (in milliseconds) it took to serve that percentage of the requests. This is usually more useful than the 'gnuplot' file; as the results are already 'binned'.

-g gnuplot-file

Write all measured values out as a 'gnuplot' or TSV (Tab separate values) file. This file can easily be imported into packages like Gnuplot, IDL, Mathematica, Igor or even Excel. The labels are on the first line of the file.

-h

Display usage information.

-H custom-header

Append extra headers to the request. The argument is typically in the form of a valid header line, containing a colon-separated field-value pair (i.e. , "Accept-Encoding: zip/zop;8bit" ).

-i

Do HEAD requests instead of GET .

-k

Enable the HTTP KeepAlive feature, i.e. , perform multiple requests within one HTTP session. Default is no KeepAlive.

-n requests

Number of requests to perform for the benchmarking session. The default is to just perform a single request which usually leads to non-representative benchmarking results.

-p POST-file

File containing data to POST.

-P proxy-auth-username password

Supply BASIC Authentication credentials to a proxy en-route. The username and password are separated by a single and sent on the wire base64 encoded. The string is sent regardless of whether the proxy needs it (i.e. , has sent an 407 proxy authentication needed).

-q

When processing more than 150 requests, ab outputs a progress count on stderr every 10% or 100 requests or so. The -q flag will suppress these messages.

-s

When compiled in ( ab -h will show you) use the SSL protected https rather than the http protocol. This feature is experimental and very rudimentary. You probably do not want to use it.

-S

Do not display the median and standard deviation values, nor display the warning/error messages when the average and median are more than one or two times the standard deviation apart. And default to the min/avg/max values. (legacy support).

-t timelimit

Maximum number of seconds to spend for benchmarking. This implies a -n 50000 internally. Use this to benchmark the server within a fixed total amount of time. Per default there is no timelimit.

-T content-type

Content-type header to use for POST data.

-v verbosity

Set verbosity level - and above prints information on headers, and above prints response codes (404, 200, etc.), and above prints warnings and info.

-V

Display version number and exit.

-w

Print out results in HTML tables. Default table is two columns wide, with a white background.

-x <table>-attributes

String to use as attributes for <table> . Attributes are inserted <table here .

-X proxy [: port ]

Use a proxy server for the requests.

-y <tr>-attributes

String to use as attributes for <tr> .

-z <td>-attributes

String to use as attributes for <td>

转载于:https://www.cnblogs.com/zhengah/p/4331987.html

apacheBench对网站进行压力测试相关推荐

  1. 使用 ab 对网站进行压力测试

    概述 这是 Apache 自带的一个网站压力测试工具,是 ApacheBench 的缩写,我们可以使用这个工具来对我们的网站进行压力测试. 安装 在 Ubuntu 上要安装下面这个包 sudo apt ...

  2. 服务器测压网站,网站服务器压力测试

    网站服务器压力测试 内容精选 换一换 简要介绍Web Bench是Linux中被广泛使用的网站压力测试工具,同时支持HTTPS静态网站和动态网站.编写语言:C/C++一句话概述:网站压力测试工具建议的 ...

  3. 【Linux】ab命令实现网站性能压力测试

    文章目录 ab命令介绍 ab命令的安装 ab命令的参数 使用举例 1. 使用gaosh-64服务器对gaosh-1服务器进行压测,模拟10个用户,对百度首页发起1000次请求 2. 压测www.zmk ...

  4. 为虾米下载《分布式网站负载压力测试工具》变成了《黄色小说》?

    时间早上8点,有一条QQ消息来源: 2013-05-24  8:20:20  你好:我在http://wst.cyqdata.com/页面下载压力测试工具时解压后的内容是小说. 当然了,一般早上我都不 ...

  5. 网站在线压力测试工具Load Impact

    关于Load Impact Load Impact是一个一个在线的网站压力测试服务及工具,模拟多用户同时访问你的站点,并出具报告以分析你的站点可以支撑的访问者数量,它能让你通过简单的几次点击就能测试出 ...

  6. 对web网站模拟压力测试

    1.下载 http://pan.baidu.com/s/1hrlAbI0 2.命令介绍 参数的介绍 n在测试会话中所执行的请求个数.默认时,仅执行一个请求.-c一次产生的请求个数.默认是一次一个.-t ...

  7. nginx php测试php_php + nginx 网站并发压力测试及优化

    属性的字符串. -C对请求附加一个Cookie:行.其典型形式是name=value的一个参数对,此参数可以重复. -H对请求附加额外的头信息.此参数的典型形式是一个有效的头信息行,其中包含了以冒号分 ...

  8. ab压力测试工具linux,【Linux】ApacheBench(ab)压力测试工具

    AB的简介 ab是apachebench命令的缩写. ab是apache自带的压力测试工具.ab非常实用,它不仅可以对apache服务器进行网站访问压力测试,也可以对或其它类型的服务器进行压力测试.比 ...

  9. ab命令压力测试网站性能

    网站性能压力测试是服务器网站性能调优过程中必不可缺少的一环.只有让服务器处在高压情况下,才能真正体现出软件.硬件等各种设置不当所暴露出的问题. 性能测试工具目前最常见的有以下几种:ab.http_lo ...

最新文章

  1. 区块链相关论文研读1- 关于边缘计算
  2. 转 从头到尾彻底解析Hash表算法
  3. python基础代码事例-python基础第三章
  4. 如何将您的Google Authenticator凭证移至新的Android手机或平板电脑
  5. 32通过rs485烧写程序_28027芯片sci程序烧写问题请教
  6. 为何boss上的HR要了简历就不回复了?
  7. 怎么实现hover_写CSS动效的常用套路(附demo的效果实现与源码)
  8. python 3.6连接数据库(pymysql方式)
  9. 解决 github clone慢
  10. 2021-07-01小程序01
  11. css在线代码生成工具汇总
  12. lua工具库penlight--06数据(二)
  13. FPGA 串口通信(补)——通用模块
  14. 安装程序包的语言不受系统支持的解决
  15. vue tab页面缓存处理
  16. 线段树+KMP-hdu-4125-Moles
  17. firewalld防火墙配置、测试服务、高级配置与IP伪装、端口转发
  18. 【ANSYS】ANSYS导入数组方法:MATLAB输出TXT文件导入ANSYS笔记
  19. 解释器模式计算机Demo
  20. 怎么利用计算机为学生成绩进行排名,使用excel为学生成绩排序的方法和步骤

热门文章

  1. 图论算法(四)--最小生成树的Kruskal [ 加边 ] 、Prim [ 加点 ] 的解法(JAVA)
  2. ThinkPHP-保存生成的二维码
  3. 错误:docker-ce-cli conflicts with 2:docker-1.13.1-103.git7f2769b.el7.centos.x86_64 错误:docker-ce confli
  4. java自定义 filter,HBase自定义Filter
  5. mysql any 效率_关于mysql的性能优化
  6. python连接influxdb_python 访问 InfluxDB 数据库
  7. php二进制加密_怎样给PHP源代码加密?PHP二进制加密与解密的解决办法
  8. qt 等待线程结束_c – 停止Qt线程:调用exit()或quit()不会停止线程执行
  9. 大数据技术之kafka (第 3 章 Kafka 架构深入) 分区策略在分析
  10. 机器学习笔记(二)——多变量最小二乘法