zoukankan      html  css  js  c++  java
  • 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 "Memorys+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并发正常,满足需求标准。

  • 相关阅读:
    STM32与FPGA通信写数据出错问题解决方法
    Altium Designer 8.0不为人知的27个技巧
    modbus详尽中文资料、软件、代码
    STM32中断与NVIC概览
    FatFs读写SD卡出现FR_NO_FILESYSTEM解决方法.
    用两个低位数的DA合成高位数的DA
    4-20mA电流转换电路分析
    C语言写的俄罗斯方块
    无源RS232转RS485(转)
    稻盛和夫写的六项精进指的是什么
  • 原文地址:https://www.cnblogs.com/kazihuo/p/7986681.html
Copyright © 2011-2022 走看看