一 测试环境

服务器端:

      硬件配置:

            一台笔记本电脑,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 制作与运行参考 

               

               

 

三  测试描述与数据

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会影响并发处理速度

 

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