为什么使用Docker Stack比Docker Compose还要糟糕?

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

所以首先有一点背景:我已经构build了一个作为web爬虫的应用程序。 它从数据库中读取一个域列表,允许用户select一个列表进行处理,在后台处理服务中访问每个网站寻找一些内容。

目前,我已经将这个应用程序部署在运行Windows 10主机和Docker for Windows的计算机上。 我使用Docker Compose运行应用程序,运行得相当好。 性能相当不错,因为每分钟访问的域数是相当合理的。

现在,我试图在Swarm中运行这个来提高性能。 我在networking中有另一台计算机,也运行Windows 10.我在那里安装了Docker。

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

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

之后,我编辑了我的configuration文件,configuration了“部署”选项,在运行当前应用程序的计算机上预置了每个Docker计算机中的图像,并将其部署到pipe理器节点。

该应用程序在群体中工作。 唯一的问题是性能。 这真的很可怕。 有一个想法,使用Docker运行应用程序与使用Docker for Windows的3个副本的后台工作人员,每分钟访问50页。

在群中运行,在pipe理器上有3个副本,在工作者上有3个副本,在每台计算机上使用Docker机器,每分钟访问的页面数量变成3。

我不明白我做错了什么。 Docker for Windows也运行在Hyper V虚拟机上,所以这不是问题。 我甚至将Docker机器的内存设置为2048mb,就像Moby虚拟机一样,但是没有成功。

为什么我在移动Swarm的时候性能下降很大? 我猜想性能会保持不变或增加很多,因为有更多的计算机执行任务。 我可能在这里错过了什么?

如果需要其他信息,请告诉我,我将编辑该问题。