硬件配置
型号
# dmidecode | grep “Product Name”
Product Name: VMware Virtual Platform
Product Name: 440BX Desktop Reference Platform
CPU
# cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq
Intel(R) Xeon(R) CPU E5- v4 @ .00GHz
内存
# dmidecode|grep -P -A5 “Memory\s+Device” | grep Size |grep -v Range | cat -n
Size: MB
Size: MB
软件环境
操作系统
# cat /etc/redhat-release
CentOS Linux release 7.2. (Core)
服务版本
# /usr/local/openresty/nginx/sbin/nginx -v
nginx version: openresty/1.11.2.4
测试软件
# ab -V
This is ApacheBench, Version 2.3 <$Revision: $>
并发测试
说明:测试基于Linux系统。
1000并发
测试1000并发,处理10000请求:
# ab -c 1000 -n 10000 http://10.27.88.50/index.html
Benchmarking 10.27.88.50 (be patient)
Completed requests
Completed requests
Completed requests
Completed requests
Completed requests
Completed requests
Completed requests
Completed requests
Completed requests
Completed requests
Finished requestsServer Software: openresty/1.11.2.4
Server Hostname: 10.27.88.50
Server Port: Document Path: /index.html
Document Length: bytes
Concurrency Level:
Time taken for tests: 0.874 seconds
Complete requests:
Failed requests:
Write errors:
Total transferred: bytes
HTML transferred: bytes
Requests per second: 11437.38 [#/sec] (mean)
Time per request: 87.433 [ms] (mean)
Time per request: 0.087 [ms] (mean, across all concurrent requests)
Transfer rate: 9505.09 [Kbytes/sec] receivedConnection Times (ms) min mean[+/-sd] median max
Connect: 5.9
Processing: 27.8
Waiting: 27.7
Total: 29.9 Percentage of the requests served within a certain time (ms)
%
%
%
%
%
%
%
%
% (longest request)
2000并发
测试2000并发,处理50000请求:
# ab -c 2000 -n 50000 http://10.27.88.50/index.html
Benchmarking 10.27.88.50 (be patient)
Completed requests
Completed requests
Completed requests
Completed requests
Completed requests
Completed requests
Completed requests
Completed requests
Completed requests
Completed requests
Finished requestsServer Software: openresty/1.11.2.4
Server Hostname: 10.27.88.50
Server Port: Document Path: /index.html
Document Length: bytesConcurrency Level:
Time taken for tests: 2.689 seconds
Complete requests: Failed requests:
(Connect: , Receive: , Length: , Exceptions: )Write errors:
Non-2xx responses:
Total transferred: bytes
HTML transferred: bytes
Requests per second: 18593.35 [#/sec] (mean)
Time per request: 107.565 [ms] (mean)
Time per request: 0.054 [ms] (mean, across all concurrent requests)
Transfer rate: 15451.92 [Kbytes/sec] receivedConnection Times (ms) min mean[+/-sd] median maxConnect: 137.3
Processing: 121.7
Waiting: 121.7
Total: 236.7 Percentage of the requests served within a certain time (ms) %
%
%
%
%
%
%
%
% (longest request)
3000并发
测试3000并发,处理100000请求:
# ab -c 3000 -n 100000 http://10.27.88.50/index.html
Benchmarking 10.27.88.50 (be patient)Completed requests
Completed requests
Completed requests
Completed requests
Completed requests
Completed requests
Completed requests
Completed requests
Completed requests
Completed requests
Finished requestsServer Software: openresty/1.11.2.4
Server Hostname: 10.27.88.50
Server Port: Document Path: /index.html
Document Length: bytesConcurrency Level:
Time taken for tests: 5.065 seconds
Complete requests:
Failed requests: (Connect: , Receive: , Length: , Exceptions: )Write errors:
Non-2xx responses:
Total transferred: bytes
HTML transferred: bytes
Requests per second: 19744.76 [#/sec] (mean)
Time per request: 151.939 [ms] (mean)
Time per request: 0.051 [ms] (mean, across all concurrent requests)
Transfer rate: 16408.79 [Kbytes/sec] receivedConnection Times (ms) min mean[+/-sd] median maxConnect: 329.4
Processing: 185.9
Waiting: 185.9
Total: 433.0 Percentage of the requests served within a certain time (ms) %
%
%
%
%
%
%
%
% (longest request)
测试总结
数据汇总
请求连接数 |
并发数 |
请求失败数 |
每秒处理请求数 |
一次并发数请求响应时间(ms) |
全体请求完成时间(s) |
请求成功率 |
10000 |
1000 |
0 |
11437 |
87.43 |
0.874 |
100.00% |
50000 |
2000 |
1 |
18593 |
107.57 |
2.689 |
99.998% |
10000 |
3000 |
2 |
19744 |
151.94 |
5.065 |
99.998% |
数据分析
通过测试结果可得如下分析:
1、Nginx的每秒请求处理能力是10000+,满足需求标准;
2、随着并发数的增大,一次并发请求的响应时间相应增大,满足需求标准;
3、随着请求连接数的增加,相应的总体请求完成时间也增加,当请求连接数从50k增加至100k时,总体请求时间增加至2倍,具有一定的稳定性和速度性,满足需求标准;
4、当请求连接数和并发数依次递增时,出现偶尔的请求失败数,全部请求成功率大于99.99%,满足需求标准;
5、单台服务器支持3000并发正常,满足需求标准。