轻量级压力测试工具 - AB

 

ab是什么
 
ab是Apache附带的一个压力测试工具,它非常容易使用
 
ab不像LoadRnner、Jmeter等那么专业,但它足够轻便,只需一条命令,就可以了解到web服务器处理请求的一些基本信息
 
ab能做什么
 
可以使用ab来模拟N个用户发送N个请求,结果数据可以告诉我们:
 
处理这些请求需要多少时间?
 
每秒可以处理多少个请求?
 
平均响应时间是多少?
 
每秒网络传输量是多少?
 
......
 
通过调整N的大小,来查看服务器的不同反应,了解到服务器的承受能力大概是什么程度
 
在系统优化前后来执行ab测试一下,查看优化效果如何
 
在执行测试的同时,也可以观察下服务器的资源使用状况,例如使用top命令,看下CPU及内存的状态
 
如何使用
 
ab是Apache的一个小工具,安装了Apache的话就可以直接使用,如果没装Apache,也可以单独安装ab
 
(1) 使用示例
 
ab -n1000 -c10 http://www.xxx.com
 
-n 指定了请求总数
 
-c 指定了并发用户数
 
后面的url就是要测试的地址
 
这3个参数是最常用的,ab还有一些其他常用的参数:
 
-t 等待服务器响应的最大时间,单位秒
 
-k 使用Keep-Alive特性
 
-c 对请求附加一个cookie,形式:name=value
 
(2) 查看结果
 
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 localhost (be patient)
Completed 100 requests
Completed 200 requests
Completed 300 requests
Completed 400 requests
Completed 500 requests
Completed 600 requests
Completed 700 requests
Completed 800 requests
Completed 900 requests
Completed 1000 requests
Finished 1000 requests
 
 
Server Software: Apache/2.2.21
Server Hostname: localhost
Server Port: 80
 
Document Path: /index.php
Document Length: 211 bytes
 
Concurrency Level: 10
Time taken for tests: 0.496 seconds
Complete requests: 1000
Failed requests: 0
Write errors: 0
Non-2xx responses: 1000
Total transferred: 400000 bytes
HTML transferred: 211000 bytes
Requests per second: 2015.93 [#/sec] (mean)
Time per request: 4.960 [ms] (mean)
Time per request: 0.496 [ms] (mean, across all concurrent requests)
Transfer rate: 787.47 [Kbytes/sec] received
 
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.4 0 1
Processing: 2 5 1.1 4 12
Waiting: 2 4 1.1 4 12
Total: 2 5 1.1 5 12
 
Percentage of the requests served within a certain time (ms)
50% 5
66% 5
75% 5
80% 6
90% 6
95% 7
98% 8
99% 9
100% 12 (longest request)
 
结果中包含了不少内容,其中重要的指标包括:
 
Requests per second
 
平均每秒可以处理的请求数,就是常说的吞吐率
 
Time per request
 
平均请求响应时间
 
Transfer rate
 
平均每秒网络上的流量,可以帮助排除是否存在网络流量过大导致响应时间延长的问题
 
Time taken for tests
 
执行这些测试请求花费的时间
 
Failed requests
 
没有被正常处理的请求数,服务器压力过大时,这个数字会增加
posted @ 2018-08-11 23:49  micwin  阅读(453)  评论(0编辑  收藏  举报