• 服务器并发测试(jmeter)


    一 测试环境

    服务器端:

          硬件配置:

                一台笔记本电脑,cpu,interl core i5.   内存:8G

         软件配置:

                操作系统:Ubuntu 18.04.2

                docker:18.09.6

                nginx:     1.14.0

                Python :3.6.8

                django: 2.2.2

                uWSGI :2.0.18   

        大网环境:

                局域网内

    客户端:

               并发测试工具:jmeter

    二,环境搭建

           docker 制作与运行参考 

                   https://www.cnblogs.com/huanhuaqingfeng/p/11075718.html

                   https://www.cnblogs.com/huanhuaqingfeng/p/11059168.html

    三  测试描述与数据

    docker数目:表示启动的django数目

    docker配置:表示uwsgi配置,processes = 2,threads = 48,这两个项的设置

    时延:django中模拟的请求延时,ms为单位

    采样设置:jmeter采样配置,num_threads/ramp-up period/loop

                       num_threads:测试启动的线程数目

                       ramp-up period:线程启动的周期

                       loop:循环次数

    执行时间:jmeter 执行完样本的总时间  ,s为单位

    响应平均值:jmeter  average,ms为单位。

    其他值:   jmeter  median/90% line/95% line/99% line/min/maximum

                     

                     Median: 50%用户的请求的响应时间,中位数

                     90%Line:90%的请求的响应时间

                     95%Line:95%的请求的响应时间

                     99%Line:99%的请求的响应时间

                     Min:最小的响应时间

                     Max:最大的响应时间

    处理速度:jmeter  throughoutput   ,平均每秒处理样本数目

    错误描述:是否报错

    jmeter 界面配置图:

    表一:

    序号
    docker 数目
    docker配置
    时延
    采样设置
    样本总数
    执行时间
    响应平均值
    其他值
    处理速度
    错误描述
    1 8 2/48 100 50/3/300 15000 37 114 111/122/130/163/105/275 399
    2 8 2/48 100 54/3/300 16200 37 115 113/125/132/151/105/234 430
    3 8 2/48 100 55/3/300          
    4 8 2/48 100 10/3/600 6000 74 118 117/125/129/139/109/179 80
    5 8 2/48 100 20/3/600 12000 73 117 115/127/133/151/106/257 163
    6 8 2/48 100 25/3/600 15000 75 121 115/141/153/184/106/324  198
    7 8 2/48 100 27/3/600 16200    76 119 115/138/150/178/105/246 214
    8 8 2/48 100 28/3/600          
    9 8 2/48 100 10/3/1200 12000   146 118 117/126/130/141/110/213 82
    10 8 2/48 100 16/3/1200 19200 144 117 116/124/128/139/107/271 132
    11 8 2/48 100 17/3/1200          
    12 8 2/48 100 10/3/2400 24000   284 116 116/123/126/135/107/175 84
    13 8 2/48 100 16/3/2400 38400   287 118 116/126/130/142/107/194 133
    14 8 2/48 100 17/3/2400          
    15 8 2/48 100 16/3/4800 76800   574 118 116/126/130/143/106/207 134
    16 8 2/48 100 17/3/4800          
    17 8 2/48 100 16/3/9600 153600   1148 118 116/126/130/141/107/200 134
    18 8 2/48 100 17/3/9600          
    19 1 2/48 100 50/3/300 15000 76 241 248/312/332/367/106/434 197
    20 1 2/48 100 54/3/300 16200 78 250 255/323/345/383/107/455 205
    21 1 2/48 100 55/3/300          
    22 1 2/48 100 10/3/600 6000 78 125 122/146/154/170/109/198 76
    23 1 2/48 100 27/3/600 16200 123 200 207/259/273/296/106/356 130
    24 1 2/48 100 28/3/600          
    25 1 2/48 100 10/3/1200 12000 156 127 122/150/158/171/109/191 76
    26 1 2/48 100 16/3/1200 19200 178 145 141/186/196/214/109/253 107
    27 1 2/48 100 27/3/1200 32400 246 200 200/206/260/275/303/107/386 131
    28 1 2/48 100 28/3/1200          
    29 1 2/48 100 10/3/2400 24000   307 125 121/147/155/170/108/200 78
    30 1 2/48 100 27/3/2400 64800 489 200 207/260/275/301/106/378 132
    31 1 2/48 100 28/3/2400          
    32 1 2/48 100 25/3/4800 120000 928 191 198/249/262/285/106/371 129
    33 1 2/48 100 26/3/4800 124800 952 196 202/254/268/293/106/365 131
    34 1 2/48 100 27/3/4800          
    35 1 2/48 100 16/3/9600 153600 1148 118 116/126/130/141/107/200 134
    36 1 2/48 100 26/3/9600 249600 1889 194 201/253/267/291/106/423 132
    37 1 2/48 100 27/3/9600          
    38 8 2/4 100 16/3/2400 38400   288 117 116/126/130/142/107/195 133
    39 8 2/4 100 17/3/2400          
    40 8 2/4 100 16/3/4800 76800   574 118 116/126/131/144/107/202 133
    41 8 2/4 100 17/3/4800          
    42 8 2/480 100 16/3/2400 38400 292 120 118/133/140/158/106/259 132
    43 8 2/480 100 16/3/4800 76800 581 120 117/132/140/158/106/235 132
    44 8 2/480 100 16/3/9600 153600 1164 120 118/133/140/158/105/322 132
    45 1 2/4 100 27/3/2400 64800 922 382 379/416/430/466/111/640 70
    46 1 2/4 100 26/3/4800 124800 1777 368 365/399/412/448/111/611 70
    47 1 2/480 100 25/3/2400 60000 465 195 200/257/273/303/106/380 126
    48 1 2/480 100 26/3/2400 62400 483 198 204/261/277/308/106/368 129
    49 1 2/480 100 26/3/4800 124800 959 197 203/260/277/310/105/432 130
    50 8 2/48 200 16/3/2400 38400   525 217 216/224/229/241/207/319 73
    51 8 2/48 200 30/3/2400 72000 541 222 217/240/252/280/206/418 133
    52 8 2/48 200 30/3/4800 144000 1075 222 217/241/253/282/206/400 133
    53 8 2/48 200 17/3/4800          
    54 8 24/48 200 30/3/4800 144000 1156 238 224/289/317/378/206/604 124
    56                    
    57                    
                         
                         
                         
                         
                         
                         

    表二:

    时延200

     docker配置:uwsgi,processes 并发处理进程数

    listern:# uwsgi,并发的socket 连接数。默认为100。优化需要根据系统配置

    use epoll;#nginx   使用epoll的I/O模型

    worker_rlimit_nofile 20000; #一个nginx 进程打开的最多文件描述符数目,理论值应该是最多打开文件数(ulimit -n)与nginx 进程数相除,但是nginx 分配请求并不是那么均匀,所以最好与ulimit -n 的值保持一致

    worker_connections 20000;#nginx,每个进程允许的最多连接数, 理论上每台nginx 服务器的最大连接数为worker_processes*worker_connections

    keepalive_timeout:nginx,0 禁用,KeepAlive 在一段时间内保持打开状态,它们会在这段时间内占用资源。占用过多就会影响性能

     id  docker配置  listern  worker_rlimit_nofile  keepalive_timeout  use epoll  docker 采样设置  处理速度  响应平均值
    1 24/48 65535 20000 0 yes 8 40/3/2400 169 233
    2 24/48 65535 20000 0 yes 8 80/3/2400 328 241
    3 24/48 65535 20000 0 yes 8 85/3/2400 330 254
    4 24/48 65535 20000 0 yes 8 81/3/4800 322 249
    5 24/48 65535 20000 0 yes 8 81/3/9600 322 249
    6 24/48 65535 20000 65 yes 8 30/3/2400 133 230
    7 24/48 65535 20000 35 yes 8 31/3/2400 131 232
    8                  
    9                  
    10                  
    11                  
    12                  
    13                  
    14                  
    15                  
    16                  
    17                  
    18                  

    四 结论:

    表一所得结论:

    1,根据处理速度与循环次数判断,短时间内,并发处理速度能达到比较高的值,但是长时间看,并发处理速度是个均值,大概133左右,这个值与docker开启的数量没有关系。

    2,从同等采样数据量看,docker开启数量多的并发处理速度高,平均响应时间短。

    3,多docker时,threads 从小到大变化,不影响多docker并发处理速度和响应时间

         单docker时,threads 从小到大变化,并发处理速度升高,响应时间减少,一旦并发速度到133左右,调整该值没什么作用

    4,时延不影响并发处理速度

    表二所得结论:

         keepalive_timeout会影响并发处理速度

    可能分析的有问题,仅供参考!!!!

  • 相关阅读:
    解析Javascript事件冒泡机制(转)
    JavaScript事件处理的三种方式(转)
    javaScript中"=="和"==="运算符的区别
    博客
    基础知识巩固二
    基础知识巩固
    知识小结(浮点数问题)
    关于电脑桌面图标消失并且右键无法点击的情况
    JS随笔(二)
    关于JS学习笔记
  • 原文地址:https://www.cnblogs.com/huanhuaqingfeng/p/11451007.html
Copyright © 2020-2023  润新知