ab性能指标
在进行性能测试过程中有几个指标比较重要:
1、吞吐率(Requests per second)
服务器并发处理能力的量化描述,单位是reqs/s,指的是在某个并发用户数下单位时间内处理的请求数。某个并发用户数下单位时间内能处理的最大请求数,称之为最大吞吐率。
记住:吞吐率是基于并发用户数的。这句话代表了两个含义:
a、吞吐率和并发用户数相关
b、不同的并发用户数下,吞吐率一般是不同的
计算公式:总请求数/处理完成这些请求数所花费的时间,即
Request per second=Complete requests/Time taken for tests
必须要说明的是,这个数值表示当前机器的整体性能,值越大越好。
2、并发连接数(The number of concurrent connections)
并发连接数指的是某个时刻服务器所接受的请求数目,简单的讲,就是一个会话。
3、并发用户数(Concurrency Level)
要注意区分这个概念和并发连接数之间的区别,一个用户可能同时会产生多个会话,也即连接数。在HTTP/1.1下,IE7支持两个并发连接,IE8支持6个并发连接,FireFox3支持4个并发连接,所以相应的,我们的并发用户数就得除以这个基数。
4、用户平均请求等待时间(Time per request)
计算公式:处理完成所有请求数所花费的时间/(总请求数/并发用户数),即:
Time per request=Time taken for tests/(Complete requests/Concurrency Level)
5、服务器平均请求等待时间(Time per request:across all concurrent requests)
计算公式:处理完成所有请求数所花费的时间/总请求数,即:
Time taken for/testsComplete requests
可以看到,它是吞吐率的倒数。
同时,它也等于用户平均请求等待时间/并发用户数,即
Time per request/Concurrency Level
### 测试结果含义参考:
```
Document Path: /a.php //请求的资源
Document Length: 0 bytes // 文档返回的长度,不包括相应头
Concurrency Level: 1000 // 并发个数
Time taken for tests: 48.650 seconds //总请求时间
Complete requests: 50000 // 总请求数
Failed requests: 0 //失败的请求数
Broken pipe errors: 0
Total transferred: 9750000 bytes
HTML transferred: 0 bytes
Requests per second: 1027.75 [#/sec] (mean) // 平均每秒的请求数
Time per request: 973.00 [ms] (mean) // 平均每个请求消耗的时间
Time per request: 0.97 [ms] (mean, across all concurrent requests) // 就是上面的时间 除以并发数
Transfer rate: 200.41 [Kbytes/sec] received // 时间传输速率
```
[[email protected]_node ~]# ab -n 50000 -c 10 http://nginx.test.local:8080/
-c 100 即:每次并发100个
-n 10000 即: 共发送10000个请求
++++++++++++++++++++++++++++++ 10 并发 +++++++++后端: 9个container+++++++++++++++++++++++
### traefik 转发
[[email protected]_node ~]# ab -n 50000 -c 100 http://nginx.test.local:8080/
6个container
```
Concurrency Level: 100
Time taken for tests: 5.351 seconds
Complete requests: 50000
Failed requests: 0
Write errors: 0
Total transferred: 11600000 bytes
HTML transferred: 1000000 bytes
Requests per second: 9344.50 [#/sec] (mean)
Time per request: 10.701 [ms] (mean)
Time per request: 0.107 [ms] (mean, across all concurrent requests)
Transfer rate: 2117.11 [Kbytes/sec] received
```
### 使用rancher 集群 haproxy
ab -n 50000 -c 100 http://nginx.test.local:8080/
```
Concurrency Level: 100
Time taken for tests: 10.822 seconds
Complete requests: 50000
Failed requests: 0
Write errors: 0
Total transferred: 12550000 bytes
HTML transferred: 1000000 bytes
Requests per second: 4620.27 [#/sec] (mean)
Time per request: 21.644 [ms] (mean)
Time per request: 0.216 [ms] (mean, across all concurrent requests)
Transfer rate: 1132.51 [Kbytes/sec] received
```
++++++++++++++++++++++++++++++ 100 并发 +++++++++后端: 9个container+++++++++++++++++++++++
### traefik 转发
[[email protected]_node ~]# ab -n 5000000 -c 100 -t 5 http://nginx.test.local:8080/
9个container
```
Concurrency Level: 100
Time taken for tests: 4.728 seconds
Complete requests: 50000
Failed requests: 0
Write errors: 0
Total transferred: 11600000 bytes
HTML transferred: 1000000 bytes
Requests per second: 10575.30 [#/sec] (mean)
Time per request: 9.456 [ms] (mean)
Time per request: 0.095 [ms] (mean, across all concurrent requests)
Transfer rate: 2395.97 [Kbytes/sec] received
```
### 使用rancher 集群 haproxy 转发
[[email protected]_node ~]# ab -n 5000000 -c 100 http://nginx.test.local:8080/
```
Concurrency Level: 100
Time taken for tests: 953.029 seconds
Complete requests: 5000000
Failed requests: 0
Write errors: 0
Total transferred: 1255000000 bytes
HTML transferred: 100000000 bytes
Requests per second: 5246.43 [#/sec] (mean)
Time per request: 19.061 [ms] (mean)
Time per request: 0.191 [ms] (mean, across all concurrent requests)
Transfer rate: 1285.99 [Kbytes/sec] received
```
++++++++++++++++++++++++++++++ 50 并发 +++++++++后端: 9个container+++++++++++++++++++++++
### traefik 转发
[[email protected]_node ~]# ab -n 5000000 -c 50 http://nginx.test.local:8080/
```
Concurrency Level: 50
Time taken for tests: 545.354 seconds
Complete requests: 5000000
Failed requests: 0
Write errors: 0
Total transferred: 1160000000 bytes
HTML transferred: 100000000 bytes
Requests per second: 9168.36 [#/sec] (mean)
Time per request: 5.454 [ms] (mean)
Time per request: 0.109 [ms] (mean, across all concurrent requests)
Transfer rate: 2077.21 [Kbytes/sec] received
```
### 使用rancher 集群 haproxy 转发
[[email protected]_node ~]# ab -n 5000000 -c 50 http://nginx.test.local:8080/
```
Concurrency Level: 50
Time taken for tests: 1082.314 seconds
Complete requests: 5000000
Failed requests: 0
Write errors: 0
Total transferred: 1255000000 bytes
HTML transferred: 100000000 bytes
Requests per second: 4619.73 [#/sec] (mean)
Time per request: 10.823 [ms] (mean)
Time per request: 0.216 [ms] (mean, across all concurrent requests)
Transfer rate: 1132.38 [Kbytes/sec] received
```
++++++++++++++++++++++++++++++ 10 并发 +++++++++后端: 9个container+++++++++++++++++++++++
### traefik 转发
[[email protected]_node ~]# ab -n 5000000 -c 10 http://nginx.test.local:8080/
9个container
```
Concurrency Level: 10
Time taken for tests: 582.869 seconds
Complete requests: 5000000
Failed requests: 0
Write errors: 0
Total transferred: 1160000000 bytes
HTML transferred: 100000000 bytes
Requests per second: 8578.26 [#/sec] (mean)
Time per request: 1.166 [ms] (mean)
Time per request: 0.117 [ms] (mean, across all concurrent requests)
Transfer rate: 1943.51 [Kbytes/sec] received
```
### 使用rancher 集群 haproxy 转发
```
[[email protected]_node ~]# ab -n 5000000 -c 10 http://nginx.test.local:8080/
Concurrency Level: 10
Time taken for tests: 1340.674 seconds
Complete requests: 5000000
Failed requests: 0
Write errors: 0
Total transferred: 1255000000 bytes
HTML transferred: 100000000 bytes
Requests per second: 3729.47 [#/sec] (mean)
Time per request: 2.681 [ms] (mean)
Time per request: 0.268 [ms] (mean, across all concurrent requests)
Transfer rate: 914.16 [Kbytes/sec] received
```
### traefik 与 nginx性能对比
https://docs.traefik.io/benchmarks/