硬件配置
型號
# 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-2660 v4 @ 2.00GHz
內存
# dmidecode|grep -P -A5 "Memory\s+Device" | grep Size |grep -v Range | cat -n
1 Size: 16384 MB 2 Size: 4096 MB
軟件環境
操作系統
# cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)
服務版本
# /usr/local/openresty/nginx/sbin/nginx -v
nginx version: openresty/1.11.2.4
測試軟件
# ab -V
This is ApacheBench, Version 2.3 <$Revision: 1430300 $>
並發測試
說明:測試基於Linux系統。
1000並發
測試1000並發,處理10000請求:
# ab -c 1000 -n 10000 http://10.27.88.50/index.html
Benchmarking 10.27.88.50 (be patient) Completed 1000 requests Completed 2000 requests Completed 3000 requests Completed 4000 requests Completed 5000 requests Completed 6000 requests Completed 7000 requests Completed 8000 requests Completed 9000 requests Completed 10000 requests Finished 10000 requests Server Software: openresty/1.11.2.4 Server Hostname: 10.27.88.50 Server Port: 80 Document Path: /index.html Document Length: 612 bytes Concurrency Level: 1000 Time taken for tests: 0.874 seconds Complete requests: 10000 Failed requests: 0 Write errors: 0 Total transferred: 8510000 bytes HTML transferred: 6120000 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] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 2 5.9 0 27 Processing: 4 12 27.8 7 801 Waiting: 0 11 27.7 7 801 Total: 5 14 29.9 7 807 Percentage of the requests served within a certain time (ms) 50% 7 66% 8 75% 8 80% 8 90% 38 95% 59 98% 61 99% 62 100% 807 (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 5000 requests Completed 10000 requests Completed 15000 requests Completed 20000 requests Completed 25000 requests Completed 30000 requests Completed 35000 requests Completed 40000 requests Completed 45000 requests Completed 50000 requests Finished 50000 requests Server Software: openresty/1.11.2.4 Server Hostname: 10.27.88.50 Server Port: 80 Document Path: /index.html Document Length: 612 bytes Concurrency Level: 2000 Time taken for tests: 2.689 seconds Complete requests: 50000 Failed requests: 1 (Connect: 0, Receive: 0, Length: 1, Exceptions: 0) Write errors: 0 Non-2xx responses: 1 Total transferred: 42549516 bytes HTML transferred: 30599587 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] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 20 137.3 0 1004 Processing: 1 18 121.7 4 1605 Waiting: 0 18 121.7 4 1605 Total: 2 38 236.7 5 2608 Percentage of the requests served within a certain time (ms) 50% 5 66% 5 75% 5 80% 5 90% 8 95% 8 98% 404 99% 1406 100% 2608 (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 10000 requests Completed 20000 requests Completed 30000 requests Completed 40000 requests Completed 50000 requests Completed 60000 requests Completed 70000 requests Completed 80000 requests Completed 90000 requests Completed 100000 requests Finished 100000 requests Server Software: openresty/1.11.2.4 Server Hostname: 10.27.88.50 Server Port: 80 Document Path: /index.html Document Length: 612 bytes Concurrency Level: 3000 Time taken for tests: 5.065 seconds Complete requests: 100000 Failed requests: 2 (Connect: 0, Receive: 0, Length: 2, Exceptions: 0) Write errors: 0 Non-2xx responses: 2 Total transferred: 85099032 bytes HTML transferred: 61199174 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] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 55 329.4 0 3008 Processing: 2 25 185.9 4 3224 Waiting: 1 25 185.9 4 3224 Total: 3 81 433.0 4 4223 Percentage of the requests served within a certain time (ms) 50% 4 66% 4 75% 6 80% 6 90% 25 95% 116 98% 1206 99% 3011 100% 4223 (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並發正常,滿足需求標准。
