为什么我使用Docker Stack比Docker Compose的性能差得多?

时间:2017-02-21 23:06:56

标签: performance docker docker-compose docker-swarm docker-for-windows

最近我遇到了Docker Stack和Docker Swarm严重的性能问题。

首先是一个小背景:我已经构建了一个充当网络爬虫的应用程序。它从数据库中读取一个域列表,允许用户选择一个列表进行处理,并在后台处理服务中访问每个网站以查找某些内容。

目前,我已将此应用程序部署在运行Windows 10主机和Docker for Windows的计算机上。我用Docker Compose运行应用程序,它运行得很好。性能非常好,因为每分钟访问的域数非常合理。

现在,我已经尝试在Swarm中运行它以提高性能。我在网络中有另一台计算机,也运行Windows 10.我在那里安装了Docker。

之后我在两台计算机上设置了docker-machine,使用hyperv驱动程序在每台计算机中创建一个Docker Machine。

我在运行当前版本应用的计算机中访问了docker机器,并在那里初始化了一个群。我添加了另一个docker机器,位于另一台计算机中作为工作节点。

之后我只编辑了我的compose文件,配置了" deploy"选项,在每个docker机器内预先构建图像,并将swarm部署到运行当前应用程序的计算机上的manager节点。

该应用在群中工作。唯一的问题是性能。它非常可怕非常可怕。有了一个想法,使用Docker运行应用程序与使用Docker for Windows的后台工作程序的3个副本组合,每分钟访问50页。

在群中运行,经理上有3个背景工作者副本,工作人员有3个副本,每台计算机上使用泊坞机,每分钟访问的页面数量变为3个。

我不知道自己做错了什么。 Docker for Windows也可以在Hyper V虚拟机上运行,​​因此不是问题。我甚至将两台泊坞机的RAM设置为2048mb,就像Moby VM一样,但它没有用。

为什么我搬到Swarm时会有如此大的性能下降?我想象性能将保持不变或增加很多,因为有更多的计算机执行任务。我可能在这里缺少什么?

如果需要任何其他信息,请通知我,我将编辑问题。

0 个答案:

没有答案