码头工人群或牧场牛中的芹菜工人
Posted
技术标签:
【中文标题】码头工人群或牧场牛中的芹菜工人【英文标题】:Celery workers in a docker swarm or rancher cattle 【发布时间】:2017-07-29 19:33:31 【问题描述】:我有一个设计问题。我在几个主机上使用 dockerized celery workers。我在每台主机上只有一个 celery 容器实例,但使用 celery 的默认工作人员设置,默认为该主机上的内核数。我没有为 docker 容器设置任何限制。我使用 rancher 部署到使用牛环境的主机,但我想我的问题同样适用于任何 docker 集群,如 swarm。我没有通过使用多个容器来使用扩展功能,因为 celery 的工作方式——一个容器已经能够通过拥有多个工作人员来利用核心。问题是:在主机上拥有更多 1 个工作容器对我有什么好处?如果是这样,我是否需要将每个 celery worker 限制为每个容器中的一个,并让集群扩展多个容器?我能想象的唯一好处是从高可用性的角度来看,如果芹菜工人在主机上死了,那么它就消失了,但是如果我有更多的容器,其他人可以接管工作,但我认为芹菜可以通过重生来做同样的事情工人也是。我错过了什么吗?
【问题讨论】:
【参考方案1】:确定的唯一方法是根据您的特定工作负载对其进行基准测试,但您的直觉通常是正确的。如果应用程序能够始终如一地使用所有内核,那么运行更多内核通常会使事情变得稍微慢一些,因为上下文切换。诸如仍然可用之类的附带好处我希望许多工人都失败了,这对您来说可能值得,也可能不值得。
【讨论】:
感谢您确认我的想法。我会听取您的建议和基准。以上是关于码头工人群或牧场牛中的芹菜工人的主要内容,如果未能解决你的问题,请参考以下文章