服務器並發測試(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會影響並發處理速度

 

可能分析的有問題,僅供參考!!!!


免責聲明!

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



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