docker、gateway、nginx网络性能损耗对比测试

2020-09-21  本文已影响0人  究天人之际

一、测试准备

1.程序准备

1、java api程序,springboot restfull api; 

2、openresty(nginx)程序,2020-09-21最新版本; 

3、gateway(springcloud gateway)springcloud:Hoxton.RELEASE,spring-boot-starter-parent:2.3.1.RELEASE; 

4、openresty-gateway;

5、测试客户端(go程序),go 1.15;

2.网络环境

以下测试,均在本地机器进行。 

1、java api程序,使用IDE(idea)运行; 

2、openresty原生运行+docker中; 

3、gateway(springcloud gateway),使用IDE(idea)运行;

4、测试客户端(go程序),使用IDE(goland)运行;

3.测试方式

测试程序,分别按单线程运行、多线程并发执行;

二、单线程方式

1.单线程:1000次请求,延时:0毫秒

单线程:    1000次请求,延时:0毫秒                                             

API                                总计(毫秒): 690.82    ,平均耗时(毫秒): 0.69  ,url: http://172.16.4.219:9000/testhello?delay=0         

openresty->API                      总计(毫秒): 875.71    ,平均耗时(毫秒): 0.88  ,url: http://172.16.4.219:81/testhello?delay=0           

docker-openresty->API              总计(毫秒): 2732.03    ,平均耗时(毫秒): 2.73  ,url: http://172.16.4.219:82/testhello?delay=0           

gateway->API                        总计(毫秒): 1369.94    ,平均耗时(毫秒): 1.37  ,url: http://172.16.4.219:8088/testhello?delay=0         

openresty-gateway->API              总计(毫秒): 2253.75    ,平均耗时(毫秒): 2.25  ,url: http://172.16.4.219:81/info?delay=0               

docker-openresty->gateway->API      总计(毫秒): 4020.83    ,平均耗时(毫秒): 4.02  ,url: http://172.16.4.219:82/info?delay=0               

2.单线程:1000次请求,延时:10毫秒

单线程:    1000次请求,延时:10毫秒                                           

API                                总计(毫秒): 12435.07  ,平均耗时(毫秒): 12.44  ,url: http://172.16.4.219:9000/testhello?delay=10     

openresty->API                      总计(毫秒): 12787.79  ,平均耗时(毫秒): 12.79  ,url: http://172.16.4.219:81/testhello?delay=10       

docker-openresty->API              总计(毫秒): 15290.16  ,平均耗时(毫秒): 15.29  ,url: http://172.16.4.219:82/testhello?delay=10       

gateway->API                        总计(毫秒): 13413.69  ,平均耗时(毫秒): 13.41  ,url: http://172.16.4.219:8088/testhello?delay=10     

openresty-gateway->API              总计(毫秒): 14135.69  ,平均耗时(毫秒): 14.14  ,url: http://172.16.4.219:81/info?delay=10           

docker-openresty->gateway->API      总计(毫秒): 16905.93  ,平均耗时(毫秒): 16.91  ,url: http://172.16.4.219:82/info?delay=10           

3. 单线程:1000次请求,延时:100毫秒

单线程:    1000次请求,延时:100毫秒                   

API                                总计(毫秒): 103827.9  ,平均耗时(毫秒): 103.83        ,url: http://172.16.4.219:9000/testhello?delay=100   

openresty->API                      总计(毫秒): 104321.18  ,平均耗时(毫秒): 104.32        ,url: http://172.16.4.219:81/testhello?delay=100     

docker-openresty->API              总计(毫秒): 107537.79  ,平均耗时(毫秒): 107.54        ,url: http://172.16.4.219:82/testhello?delay=100     

gateway->API                        总计(毫秒): 105019.33  ,平均耗时(毫秒): 105.02        ,url: http://172.16.4.219:8088/testhello?delay=100   

openresty-gateway->API              总计(毫秒): 105711.48  ,平均耗时(毫秒): 105.71        ,url: http://172.16.4.219:81/info?delay=100         

docker-openresty->gateway->API      总计(毫秒): 109240.09  ,平均耗时(毫秒): 109.24        ,url: http://172.16.4.219:82/info?delay=100       

三、多线程方式(并发模式)

1. 多线程:1000次请求,延时:0毫秒

多线程:    1000次请求,延时:0毫秒                                     

API                                总计(毫秒): 492.44    ,平均耗时(毫秒): 0.49  ,url: http://172.16.4.219:9000/testhello?delay=0                       

openresty->API                      总计(毫秒): 569.23    ,平均耗时(毫秒): 0.57  ,url: http://172.16.4.219:81/testhello?delay=0                         

docker-openresty->API              总计(毫秒): 13053.47  ,平均耗时(毫秒): 13.05  ,url: http://172.16.4.219:82/testhello?delay=0                      

gateway->API                        总计(毫秒): 1123.98    ,平均耗时(毫秒): 1.12  ,url: http://172.16.4.219:8088/testhello?delay=0                       

openresty-gateway->API              总计(毫秒): 1382.02    ,平均耗时(毫秒): 1.38  ,url: http://172.16.4.219:81/info?delay=0                             

docker-openresty->gateway->API      总计(毫秒): 16284.98  ,平均耗时(毫秒): 16.28  ,url: http://172.16.4.219:82/info?delay=0                     

2. 多线程:1000次请求,延时:10毫秒

多线程:    1000次请求,延时:10毫秒

API                                总计(毫秒): 11788.78  ,平均耗时(毫秒): 11.79  ,url: http://172.16.4.219:9000/testhello?delay=10

openresty->API                      总计(毫秒): 11843.45  ,平均耗时(毫秒): 11.84  ,url: http://172.16.4.219:81/testhello?delay=10 

docker-openresty->API              总计(毫秒): 38105.32  ,平均耗时(毫秒): 38.11  ,url: http://172.16.4.219:82/testhello?delay=10 

gateway->API                        总计(毫秒): 12718.18  ,平均耗时(毫秒): 12.72  ,url: http://172.16.4.219:8088/testhello?delay=10

openresty-gateway->API              总计(毫秒): 12993.85  ,平均耗时(毫秒): 12.99  ,url: http://172.16.4.219:81/info?delay=10       

docker-openresty->gateway->API      总计(毫秒): 136980.47  ,平均耗时(毫秒): 136.98        ,url: http://172.16.4.219:82/info?delay=10

3.多线程:1000次请求,延时:100毫秒

多线程:    1000次请求,延时:100毫秒     

API                                总计(毫秒): 104267.94  ,平均耗时(毫秒): 104.27        ,url: http://172.16.4.219:9000/testhello?delay=100

openresty->API                      总计(毫秒): 104248.91  ,平均耗时(毫秒): 104.25        ,url: http://172.16.4.219:81/testhello?delay=100 

docker-openresty->API              总计(毫秒): 128519.97  ,平均耗时(毫秒): 128.52        ,url: http://172.16.4.219:82/testhello?delay=100 

gateway->API                        总计(毫秒): 105339.96  ,平均耗时(毫秒): 105.34        ,url: http://172.16.4.219:8088/testhello?delay=100

openresty-gateway->API              总计(毫秒): 105280.04  ,平均耗时(毫秒): 105.28        ,url: http://172.16.4.219:81/info?delay=100     

docker-openresty->gateway->API      总计(毫秒): 185242.13  ,平均耗时(毫秒): 185.24        ,url: http://172.16.4.219:82/info?delay=100     

四、总计

总结:统计的结果中,关键数据是平均耗时。可以看出: 

1、openresty和gateway,对api的访问延迟大约在3~5毫秒,在可接受范围; 

2、docker默认网络环境对访问延迟,不太稳定,单线程的情况在10毫秒以内,多线程情况下延迟明显从28毫秒到85毫秒,甚至于更多。如果生产中,openresty建议使用--net=host网络模式。

上一篇下一篇

猜你喜欢

热点阅读