ab

语法

ab (选项)(参数)

选项

-A :指定连接服务器的基本的认证凭据;
-c :指定一次向服务器发出请求数;
-C :添加cookie;
-g :将测试结果输出为“gnuolot”文件;
-h :显示帮助信息;
-H :为请求追加一个额外的头;
-i :使用“head”请求方式;
-k :激活HTTP中的“keepAlive”特性;
-n :指定测试会话使用的请求数;
-p :指定包含数据的文件;
-q :不显示进度百分比;
-T :使用POST数据时,设置内容类型头;
-v :设置详细模式等级;
-w :以HTML表格方式打印结果;
-x :以表格方式输出时,设置表格的属性;
-X :使用指定的代理服务器发送请求;
-y :以表格方式输出时,设置表格属性。

实例

这里我们访问k8s2.shenmin.com 下的8080端口的 /noflux/test2, 这个服务是个java的服务。

从下面的请求结果可以看到,15000并发是没有问题的,吞吐量为2135.57 [#/sec]

[root@k8s4 ~]# ab -c 5000 -n 15000 http://k8s2.shenmin.com:8080/noflux/test2
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 k8s2.shenmin.com (be patient)
Completed 1500 requests
Completed 3000 requests
Completed 4500 requests
Completed 6000 requests
Completed 7500 requests
Completed 9000 requests
Completed 10500 requests
Completed 12000 requests
Completed 13500 requests
Completed 15000 requests
Finished 15000 requests


Server Software:
Server Hostname:        k8s2.shenmin.com
Server Port:            8080

Document Path:          /noflux/test2
Document Length:        425 bytes

Concurrency Level:      5000
Time taken for tests:   7.024 seconds
Complete requests:      15000
Failed requests:        0
Write errors:           0
Total transferred:      8160000 bytes
HTML transferred:       6375000 bytes
Requests per second:    2135.57 [#/sec] (mean)
Time per request:       2341.300 [ms] (mean)
Time per request:       0.468 [ms] (mean, across all concurrent requests)
Transfer rate:          1134.52 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0   33  51.9      0    1002
Processing:    50 1964 1098.7   1593    6799
Waiting:        6 1964 1098.7   1593    6799
Total:        169 1998 1087.2   1605    6885

Percentage of the requests served within a certain time (ms)
  50%   1605
  66%   2274
  75%   2443
  80%   2640
  90%   3372
  95%   4188
  98%   5053
  99%   5778
 100%   6885 (longest request)

下面我们访问nginx,nginx做了负载均衡,nginx的后端就是两台上面那个8080的java服务。

[root@k8s4 ~]# ab -c 5000 -n 15000 http://k8s2.shenmin.com:80/noflux/test2
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 k8s2.shenmin.com (be patient)
Completed 1500 requests
Completed 3000 requests
Completed 4500 requests
Completed 6000 requests
Completed 7500 requests
Completed 9000 requests
Completed 10500 requests
Completed 12000 requests
Completed 13500 requests
Completed 15000 requests
Finished 15000 requests


Server Software:        nginx/1.12.2
Server Hostname:        k8s2.shenmin.com
Server Port:            80

Document Path:          /noflux/test2
Document Length:        425 bytes

Concurrency Level:      5000
Time taken for tests:   5.126 seconds
Complete requests:      15000
Failed requests:        0
Write errors:           0
Total transferred:      8490000 bytes
HTML transferred:       6375000 bytes
Requests per second:    2926.48 [#/sec] (mean)
Time per request:       1708.534 [ms] (mean)
Time per request:       0.342 [ms] (mean, across all concurrent requests)
Transfer rate:          1617.57 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0   37  81.4      0    1003
Processing:    28 1377 1087.5   1271    4925
Waiting:        6 1377 1087.5   1271    4925
Total:         28 1414 1096.9   1304    5077

Percentage of the requests served within a certain time (ms)
  50%   1304
  66%   1731
  75%   1920
  80%   2339
  90%   2976
  95%   3660
  98%   4212
  99%   4585
 100%   5077 (longest request)