ab原理:ab命令会创建多个并发访问线程,模拟多个访问者同时对某一URL地址进行访问。她的测试目标是基于URL的,因此,她既可以用来测试apache的负载压力,也可以测试其他web服务器压力。ab命令对发出负载的计算机要求很低,它既不会占用很高CPU,也不会占用很多内存,但是会给目标服务器造成巨大的负载,类似CC攻击。
ubuntu16安装*Apache ab
- sudo apt-get install apache2-utils
简单使用:
- ab -n 100 -c 10 http://www.baidu.com/ 【对http://www.baidu.com/进行100次请求,10个并发请求压力的结果】
This is ApacheBench, Version 2.3 <$Revision: 1706008 $>Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/Licensed to The Apache Software Foundation, http://www.apache.org/
//以上为apache的版本信息,与本次测试无关
Benchmarking www.baidu.com (be patient).....done
//以上内容显示测试完成度,本地测试发起请求的数量较少,完成较快,无中间过程显示。在请求数量很多时会分行显示当前完成数量
Server Software: BWS/1.1 //被测试的服务器所用的软件信息
Server Hostname: www.baidu.com //被测主机名
Server Port: 80 //被测主机的服务端口号,一般http请求的默认端口号时80,https默认使用443端口
Document Path: / //请求的具体文件,也就是测试的页面
Document Length: 118765 bytes //请求的文件大小
Concurrency Level: 10 //并发级别
Time taken for tests: 1.415 seconds //本次测试总共花费的时间
Complete requests: 100 //本次测试总共发起的请求数量
Failed requests: 87 //失败的请求数量。因为网络原因或者服务器性能原因 ,发起的请求并不一定全部成功,通过该数值和Complete requests相除可以计算请求的失败率,作为测试结果的重要参考
(Connect: 0, Receive: 0, Length: 87, Exceptions: 0)
Total transferred: 11968980 bytes //总共传输的数据量,指的是ab从被测服务器接收到的总数据量,包括请求文本的文本内容和请求头信息。也就是整个过程中的网络传输量
HTML transferred: 11873466 bytes //从服务器接收到的文件的总大小,也就是整个过程中的html内容传输量
***Requests per second: 70.67 [#/sec] (mean) //服务器吞吐量,每秒请求处理量
Time per request: 141.500 [ms] (mean) //用户平均等待时间
Time per request: 14.150 [ms] (mean, across all concurrent requests) //服务器单个请求的处理时间***
Transfer rate: 8260.40 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median
maxConnect: 13 18 4.8 17 42
Processing: 69 120 18.9 122 159
Waiting: 27 47 9.0 46 66
Total: 85 138 19.4 139 175
Percentage of the requests served within a certain time (ms)
50% 139
66% 147
75% 152
80% 156
90% 164
95% 170
98% 175
99% 175
100% 175 (longest request)
//整个场景中所有请求的响应情况。在场景中每个请求都有一个响应时间,其中50%的用户的响应时间小于139ms,66%的用户响应时间小于147ms,最大响应时间小于175ms。