ab的使用
有多简单,just so easy,看示例
G:\program files\Apache Software Foundation\Apache2.2\bin>ab.exe -n 1000 -c 100 http://www.163.com/
这是我在xp下跑的测试,首先要找到apache的安装目录,“G:\program files\Apache Software Foundation\Apache2.2\bin” 这是我的apache的安装目录,一坨cd等命令,让我们进入到了这个目录下后,输入命令主体,“ab.exe -n 1000 -c 100 http://www.163.com/”
ab.exe 是命令
-n 1000 表示总共要发送1000个请求
-c 100 表示并发请求数为100
http://www.163.com/ 最后跟的是要测试的网址(发现网址的末尾必须加上/ 才行,否则命令不运行,猜想可能是正则匹配的原因)
ab性能报告&解析
要找到一个能允许做压力测试的网站并不是很容易,很多大型网站会对用户的访问频率做一些限制,以此来避免DOS攻击,但是还是被我侥幸发现了一个可以做实验小白鼠的:网易,一起看一下他的测试报告
G:\program files\Apache Software Foundation\Apache2.2\bin>ab.exe -n 100 -c 10 http://www.163.com/
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking www.163.com (be patient).....done
#展示了web服务器的信息,可见网易采用的是nginx服务器,域名是www.163.com,端口话是80
Server Software: nginx
Server Hostname: www.163.com
Server Port: 80
#这段是关于请求的文档的相关信息,所在位置“/”,文档的大小为338436 bytes(此为http响应的正文长度)
Document Path: /
Document Length: 338436 bytes
#请求并发数为10
Concurrency Level: 10
#本次测试100次请求共花费时间为 72.469秒
Time taken for tests: 72.469 seconds
#完成的请求数为100
Complete requests: 100
#失败的请求数为23个
Failed requests: 23
(Connect: 0, Receive: 0, Length: 23, Exceptions: 0)
Write errors: 0
#所有请求的响应数据长度总和(result = http响应头信息 + 正文数据)
Total transferred: 33875454 bytes
#等于上面的数据 - http头信息
HTML transferred: 33841001 bytes
# 吞吐率(网站性能的重要标志!!!)
Requests per second: 1.38 [#/sec] (mean)
#用户平均请求等待时间(网站性能的重要标志!!)
Time per request: 7246.875 [ms] (mean)
#服务器平均请求处理时间(网站性能的重要标志!!)
Time per request: 724.688 [ms] (mean, across all concurrent requests)
#这些请求在单位时间内从服务器获取的数据长度,该项数据可以统计出服务器在处理能力达到极限时,器出口带宽的需求量
Transfer rate: 456.49 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 2 5.4 0 16
Processing: 31 6985 2170.1 6828 13625
Waiting: 0 330 617.2 94 3688
Total: 47 6987 2169.4 6828 13625
#每个请求处理时间的分布情况,50%的处理时间在6828ms内,66%的处理时间在7774ms内。。。
Percentage of the requests served within a certain time (ms)
50% 6828
66% 7734
75% 8609
80% 9063
90% 9859
95% 10609
98% 11156
99% 13625
100% 13625 (longest request)
压力测试目的
通过不断的增加并发数,记录下并发用户数、吞吐率、请求等待时间、请求处理时间这些实验数据,通过您自己的分析,选取最适合自己的并发数