2019独角兽企业重金招聘Python工程师标准>>>

简介

ApacheBench 是 Apache服务器自带的一个web压力测试工具,简称ab。ab又是一个命令行工具,对发起负载的本机要求很低,根据ab命令可以创建很多的并发访问线程,模拟多个访问者同时对某一URL地址进行访问,因此可以用来测试目标服务器的负载压力。总的来说ab工具小巧简单,上手学习较快,可以提供需要的基本性能指标,但是没有图形化结果,不能监控。

语法及参数

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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
示例以及结果分析 
发起并发为10,总量为100的请求www.baidu.com,如下:

[root@jia1 ~]# ab -n 100 -c 10 http://www.baidu.com/
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/

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

Server Software:        BWS/1.1
Server Hostname:        www.baidu.com
Server Port:            80

Document Path:          /      #测试页面
Document Length:        112439 bytes     #测试页面大小

Concurrency Level:      10     #并发数
Time taken for tests:   1.256 seconds    #整个测试话费的时间
Complete requests:      100    #完成请求的总量
Failed requests:        96     #失败的请求次数
   (Connect: 0, Receive: 0, Length: 96, Exceptions: 0)
Write errors:           0
Total transferred:      11348660 bytes    #传输数据总大小
HTML transferred:       11253726 bytes    #传输页面总大小
Requests per second:    79.62 [#/sec] (mean)    #平均每秒请求数
Time per request:       125.593 [ms] (mean)     #平均每次并发10个请求的处理时间
Time per request:       12.559 [ms] (mean, across all concurrent requests)   #平均每个请求处理时间,所有并发的请求加一起
Transfer rate:          8824.29 [Kbytes/sec] received  #平均每秒网络流量

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        4   20   7.7     18      38
Processing:    18   90  50.5     82     356
Waiting:        4   22   7.9     22      41
Total:         22  111  50.7    101     384
#花费在连接Connect,处理Processing,等待Waiting的时间的最小min,平均值mean,标准差[+/-sd],中值median,最大表max的一个表。

Percentage of the requests served within a certain time (ms)
  50%    101   #50%请求的响应时间在101ms内
  66%    103   #66%请求的响应时间在103ms内
  75%    104   #...以此类推
  80%    105
  90%    111
  95%    267
  98%    311
  99%    384
 100%    384 (longest request)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
可以看到用www.baidu.com测试,错误率很高。这应该和www.baidu.com有关系。正常情况下,不会错误率这么高。 
不过了解了具体怎么分析即可。 
补充个测试www.sina.com的数据,总数100并发为20.失败为0.如下:

[root@jia1 ~]# ab -n 100 -c 20 http://www.sina.com/
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/

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

Server Software:        nginx
Server Hostname:        www.sina.com
Server Port:            80

Document Path:          /
Document Length:        178 bytes

Concurrency Level:      20
Time taken for tests:   0.081 seconds
Complete requests:      100
Failed requests:        0
Write errors:           0
Non-2xx responses:      100
Total transferred:      71200 bytes
HTML transferred:       17800 bytes
Requests per second:    1231.15 [#/sec] (mean)
Time per request:       16.245 [ms] (mean)
Time per request:       0.812 [ms] (mean, across all concurrent requests)
Transfer rate:          856.03 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        2    6   2.5      6      14
Processing:     3    7   3.2      5      14
Waiting:        3    6   2.7      5      14
Total:          7   13   3.8     12      23

Percentage of the requests served within a certain time (ms)
  50%     12
  66%     14
  75%     15
  80%     16
  90%     17
  95%     21
  98%     21
  99%     23
 100%     23 (longest request)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
还有就是ab属于一个轻量级的压测工具,结果不会特别准确,可以用作参考。 
追求准确的话,推荐使用jmeter或者LoadRunner。
--------------------- 
作者:贾己人 
来源:CSDN 
原文:https://blog.csdn.net/jiajiren11/article/details/79486967 
版权声明:本文为博主原创文章,转载请附上博文链接!

转载于:https://my.oschina.net/wuweixiang/blog/2999793

ab(Apache Bench)命令详解以及压力测试模拟相关推荐

  1. apache启服务命令_Linux系统重启apache服务命令详解

    Linux系统中apache是重要的一个服务,掌握基本操作尤其重要.下面由学习啦小编为大家整理了Linux系统重启apache服务命令详解,希望对大家有帮助! Linux系统重启apache服务命令详 ...

  2. 【Linux】Linux crontab 命令详解

    原文来自:http://ir.hit.edu.cn/~wsong/development/crontab.html Linux crontab 命令详解 在 Linux 中,任务可以被配置在指定的时间 ...

  3. docker常用命令详解

    docker常用命令详解 本文只记录docker命令在大部分情境下的使用,如果想了解每一个选项的细节,请参考官方文档,这里只作为自己以后的备忘记录下来. 根据自己的理解,总的来说分为以下几种: Doc ...

  4. [老男孩笔记系列]-之linux定时任务crontab命令详解

    linux定时任务crontab命令详解 1.1指令语法 crontab [ -u user ] file crontab [ -u user ] { -l | -r | -e } 1.2指令说明 通 ...

  5. linux没有semanage命令,SELinux-semanage命令详解

    SELinux-semanage命令详解 (2012-06-02 12:06:04) 标签: selinux 命令 semanage 杂谈 NAMEsemanage − SELinux Policy ...

  6. Linux中sort,uniq,cut,wc命令详解

    Linux中sort,uniq,cut,wc命令详解 来源:hellodev 本文主要对Linux中sort,uniq,cut,wc这4个命令的使用方法进行了详细说明,希望对你有所帮助. sort s ...

  7. Apache Hadoop版本详解

    由doop版本混乱多变,因此,Hadoop的版本选择问题一直令很多初级用户苦恼.本文总结了ApacheHadoop和Cloudera Hadoop的版本衍化过程,并给出了选择Hadoop版本的一些建议 ...

  8. nmcli命令详解_【高新课堂】第一百二十五期Liunx必备命令

    点击上方"蓝字"关注我们吧! Liunx系统启动默认为字符界面,一般不会启用图像界面,所以对命令行的熟练程度能更加高效.便捷的管理Liunx服务器. 这节课向读者介绍Liunx系统 ...

  9. linux crontab 管理,linux crontab 命令详解

    linux crontab 命令详解 使用方式 : crontab [ -u user ] file crontab [ -u user ] { -l | -r | -e } 说明 : crontab ...

最新文章

  1. gensim中word2vec使用
  2. 联想Y510P安装windows 8.1
  3. RSS接触 - 实战RSS文档输出
  4. 电脑键盘上各个键的作用!!!
  5. java数组和list_Java中的数组和List
  6. c语言实验四报告,湖北理工学院14本科C语言实验报告实验四数组
  7. TP5:缩短访问路径和路由的使用——2
  8. 1020 月饼 (25分)
  9. Resi图片博客WordPress主题
  10. linux iptables
  11. vmware虚机无法重启关机的强制处理办法
  12. JavaScript学习(七十)—函数中this的指向问题
  13. 几篇关于 Redis集群方面的知识学习
  14. Atitit 装备工具分类 attilax总结 艾龙著 工具链体系 武器与软件行业工具也是很近似的的。 1. 分类思维 1 1.1. 总分类:冷、热 1 1.2. 轻、重、大规模杀伤性 1
  15. Dreamweaver文字或图片如何添加空链接代码
  16. ios人脸照片_基于iOS用CoreImage实现人脸识别
  17. 【SharePoint】SharePoint页面中添加webpart时提示找不到类型或该类型未注册为安全类型解决方案
  18. 阿里云存储OSS之九大使用技巧
  19. Data requirement
  20. WIN10插上耳机还是声音外放

热门文章

  1. 【51媒体网】媒体邀约行业诞生及其前景预测
  2. Adobe RGB和sRGB色彩空间的主要区别
  3. Qt ListView使用
  4. ebay注册流程_eBay账号如何注册?eBay账号开店注册指南
  5. 清华大学张敏老师,个性化推荐的基础与趋势,145页ppt
  6. Python笔记 之 计算商品复购
  7. 英语阅读速度飞升只需加粗几个字母,网友试后直呼快得停不下来,华为 NLP 专家称“这很合理”
  8. 为什么叫zigbee_Zigbee是什么?为什么说最适合智能家居设备?
  9. Vue CLI 浏览器兼容性
  10. Eclipse 如何使用CVS