美文网首页
docker、gateway、nginx网络性能损耗对比测试

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

作者: 究天人之际 | 来源:发表于2020-09-21 16:20 被阅读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网络模式。

    相关文章

      网友评论

          本文标题:docker、gateway、nginx网络性能损耗对比测试

          本文链接:https://www.haomeiwen.com/subject/puwvyktx.html