NGINX壓力測試


硬件配置

型號

# 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並發正常,滿足需求標准。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM