2017-03-09 62 views
1

我有一个设计问题。我在几台主机上使用码头化的芹菜工作人员。我只在每个主机上运行一个芹菜容器的实例,但是使用默认的celery默认工人设置,默认为该主机上的核心数量。我没有为码头集装箱设置任何限制。我使用牧场主来部署到使用牛环境的主机,但我想我的问题同样适用于像swarm这样的任何docker集群。由于芹菜的工作方式,我没有通过使用多个容器来使用扩展功能 - 一个容器已经能够通过拥有多个工作人员来利用核心。问题是:在主机上有更多的工作容器对我有任何好处吗?如果是这样,我是否需要限制每个芹菜工人在每个容器中只有一个,并让该集群扩大多个容器?我可以想象的唯一好处是从高可用性的角度来看,如果芹菜工人死在主人那么它就消失了,但如果我有更多的容器,其他人可以接管工作,但我认为芹菜可以通过重新生产做同样的事情工人也是。我错过了什么吗?芹菜工人在码头群或牧场牛

回答

0

唯一可以肯定的方法是将其与您的特定工作负载进行基准比较,但您的直觉通常是正确的。如果应用程序能够始终如一地使用所有内核,那么由于上下文切换,运行更多内核通常会使速度稍慢。好处仍然存在,如果我有许多工人失败,可能会或可能不值得您花费。

+0

感谢您确认我的想法。我会接受你的建议和基准。 – Fuithecat