apache的ab工具测试网页优化效果速度以及服务器承载

今天为大家介绍一款apache自带的一种的测试网页优化效果速度以及服务器承载的工具——ab.exe。

一、安装

window系统安装,通过官网下载apache zip安装包,解压后放在C(or)D盘根目录
下载网址:https://www.apachehaus.com/cgi-bin/download.plx
如下图位置点击下载zip包
在这里插入图片描述

大家在工作中或者开发中可以使用apache的ab工具来测试自己的网站并发量大小,和某个页面的访问时间。

启动ab工具
以安装路径为D:\Apache24\bin为例
打开终端输入命令
切换D盘
cd D:\Apache24\bin
输入ab --help,显示所有指令集合,即ab工具安装成功且能正常启动

参数解析:
-n 测试会话中所执行的请求个数,默认仅执行一个请求,如果不指定-t参数,默认执行完所有请求后自动结束压测

-c 一次产生的请求个数,即同一时间发出多少个请求,默认为一次一个,此参数可以控制对服务器的单位时间内的并发量

-t 测试所进行的最大秒数,默认为无时间限制….其内部隐含值是[-n 50000],它可以使对服务器的测试限制在一个固定的总时间以内,如果时间到了,请求个数还未执行完,也会被停止。

-p 包含了需要POST的数据的文件,数据格式以接口请求参数定义的格式为准,eg. xxx.json

-T POST 数据所使用的Content-type头信息,指定请求参数格式,eg. application/json

-r 在接口返回失败后,默认会终止压测,添加此参数后压测会继续进行

-v 设置显示信息的详细程度

-w 以HTML表格的形式输出结果,默认是白色背景的两列宽度的一张表

-i 以HTML表格的形式输出结果,默认是白色背景的两列宽度的一张表

-x 设置属性的字符串,此属性被填入[/table]

-y 设置属性的字符串

-z 设置[table]属性的字符串

-C 对请求附加一个Cookie行,其典型形式是name=value的参数对,此参数可以重复

-H 对请求附加额外的头信息,此参数的典型形式是一个有效的头信息行,其中包含了以冒号分隔的字段和值的对(如”Accept-Encoding:zip/zop;8bit”)

-A HTTP验证,用冒号:分隔传递用户名及密码

-P 无论服务器是否需要(即是否发送了401认证需求代码),此字符串都会被发送

-X 对请求使用代理服务器

-V 显示版本号并退出

-k 启用HTTP KeepAlive(长连接)功能,即在一个HTTP会话中执行多个请求,默认为不启用KeepAlive功能

-d 不显示”percentage served within XX [ms] table”的消息(为以前的版本提供支持)

-S 不显示中值和标准背离值,且均值和中值为标准背离值的1到2倍时,也不显示警告或出错信息,默认会显示最小值/均值/最大值等(为以前的版本提供支持)

-g 把所有测试结果写入一个’gnuplot’或者TSV(以Tab分隔的)文件

-e 产生一个以逗号分隔的(CSV)文件,其中包含了处理每个相应百分比的请求所需要(从1%到100%)的相应百分比的(以微秒为单位)时间

-h 显示使用方法-k 发送keep-alive指令到服务器端

二、ab工具用法举例

ab -c 100 -n 10000 http://www.baidu.com/

上述表达式表示模拟访问http://www.baidu.com/共计10000次,每秒并发为100个。

运行结果为:

apache中ab.exe运行结果

这种情况表示服务器还没有瘫痪,能处理的过来,那么我们加大ab工具中的-c的值(并发量),直到得不出结果或者花费时间超出预期为止,即可得出服务器承载能力。

利用apache得ab工具测试网页优化速度和服务器承载能力是一个循循渐进的过程,慢慢的改变apache的ab工具中的参数,测试临界值。

三、ab工具其余参数

apache中ab.exe其余参数

测试报告指标详细解析:
Server Software: nginx
Server Hostname:
#请求的URL主机名
Server Port: 80
#请求端口
Document Path: /#/
#请求路径
Document Length: 15466 bytes
#HTTP响应数据的正文长度

Concurrency Level: 10
#并发用户数,这是我们设置的参数之一(-c)
Time taken for tests: 1.169 seconds
#所有这些请求被处理完成所花费的总时间 单位秒
Complete requests: 100
#总请求数量,这是我们设置的参数之一(-n)
Failed requests: 0
#表示失败的请求数量
Total transferred: 1577000 bytes
#所有请求的响应数据中正文数据的总和,也就是减去了Total transferred中HTTP响应数据中的头信息的长度
HTML transferred: 1546600 bytes
#吞吐量,计算公式:Complete requests/Time taken for tests 总请求数/处理完成这些请求数所花费的时间
Requests per second: 85.55 [#/sec] (mean)
#用户平均请求等待时间,计算公式:Time token for tests/(Complete requests/Concurrency Level)。处理完成所有请求数所花费的时间/(总请求数/并发用户数)
Time per request: 116.889 [ms] (mean)
#用户平均请求等待时间,计算公式:Time token for tests/(Complete requests/Concurrency Level)。处理完成所有请求数所花费的时间/(总请求数/并发用户数)
Time per request: 11.689 [ms] (mean, across all concurrent requests)
#服务器平均请求等待时间,计算公式:Time taken for tests/Complete requests,正好是吞吐率的倒数。也可以这么统计:Time per request/Concurrency Level
Transfer rate: 1317.52 [Kbytes/sec] received
#表示这些请求在单位时间内从服务器获取的数据长度,计算公式:Total trnasferred/ Time taken for tests,这个统计很好的说明服务器的处理能力达到极限时,其出口宽带的需求量。

Connection Times (ms)
min mean[+/-sd] median max
Connect: 4 11 5.2 14 20
Processing: 13 95 18.0 98 140
Waiting: 8 58 27.2 56 140
Total: 29 106 17.5 109 146

Percentage of the requests served within a certain time (ms)
50% 109
#50%的请求在109毫秒内返回(以下同此意思)
66% 111
75% 113
80% 116
90% 120
95% 123
98% 132
99% 146
#99%的请求在146毫秒内返回
100% 146 (longest request)

延伸
以上列举的为一个简单的get请求url做压测,还可以做post请求压测,如下:
1.准备测试post接口url,找到post参数
2.新建一个文本文档,里面内容填入post参数内容(可以是json格式,可以是&格式)如图

3.输入指令:ab -n 1 -c 1 -p D:\Apache24\ceshi.txt -T application/x-www-form-urlencoded “post接口url地址”
其中:
-p 包含POST参数的文件
-T 内容类型。这个一般和-p 一起使用(Content-type header to use for POST data.)
D:\Apache24\ceshi.txt为存放post请求参数的路径
application/x-www-form-urlencoded为固定格式
最后url地址需要加引号
得到的结果如下:

这样就完成了一次post请求url压测;参数的分析详见上面示例

ab.exe下载地址,文件已上传:

链接:https://pan.baidu.com/s/1e5IUv8fpvehN-v80nD3Mlg?pwd=79yk 
提取码:79yk

化繁为简,欢迎一起交流学习!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值