服务器并发测试(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会影响并发处理速度

 

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

posted on 2019-09-03 09:12  幻化清风  阅读(2215)  评论(0编辑  收藏  举报