docker swarm 网络性能问题


看了一个文章说docker swarm 原生的overlay网络性能低,我们自己测试了,确实会比不用overlay网络慢不少,后来看到网上说用calico ,可是swarm mode 不能用calico,请问大家在使用swarm搭建集群的时候有遇到过网络性能差的问题吗?
已邀请:

justinmjc - Dare to Dream

赞同来自: Dockergo


网络这个问题确实很头疼,像阿里这种大厂都会对swarm 进行二次开发,不过一般的公司估计也没这个能力。

17.06 是支持host的我不知道为啥你不行呢。。你看我下图就可以

host.png


但是host 有局限性,就是容器没有自己的独立IP了

所以我们公司最后的方案就是:
对网络性能要求很高的应用就用host
其余的可以使用bridge(17.06除了支持host还支持bridge,bridge性能比overlay好很多)

host模式 容器不支持独立IP,如果非要区分的话,可以考虑用端口区分

justinmjc - Dare to Dream

赞同来自:


我找到了答案,不过github上还不支持新版本moby 的下载,耐心等待吧。。
答案参考:http://blog.daocloud.io/edu170703/

Dockergo

赞同来自:


我也遇到了,楼主,我说下我的情况吧

我用的最新版的stable的docker版本。17.06.0-ce
1、创建swarmkit集群,并创建service,上面跑5个nginx,没有业务逻辑,就是静态页面,然后用ab来压测,ab -c 100 -n 100000 ****
压测结果:
Requests per second: 173.09 [#/sec] (mean)
Time per request: 577.720 [ms] (mean)

如果ab上加入-k参数,就很快,因为这样是连接保持,不是每次都重新创建连接。

2、直接启动一个容器,非swarm集群模式,ab压测能达到接近10000笔/秒

两者相差50-70倍左右,我之前看网上说的swam集群网络性能是原生网络的45%左右,但是这明显还不如;后来在一篇文章看到说如果使用了加密模式的网络智能达到原生网络的1%。。。但是我没有使用加密网络,没有加-opt那个选项。

这有什么解决办法不?

刚二楼的那边文章说swarm集群支持本地网络了么?但是我创建集群指定host网络不行呢,overlay网络简直是是龟速

Dockergo

赞同来自:


楼主,我指定host网络,是能创建service,但是启动不了,我看你的似乎也没有起来,replica那一列是0/1,是0

Dockergo

赞同来自:


官网的一个信息

看错了,这个是已经废弃的Superseded products and tools里面的

要回复问题请先登录注册