当前位置: 首页 > 面试题库 >

并发,工作人员和自动缩放之间的芹菜差异

陆海阳
2023-03-14
问题内容

在我的/etc/defaults/celeryd配置文件中,我设置了:

CELERYD_NODES="agent1 agent2 agent3 agent4 agent5 agent6 agent7 agent8"
CELERYD_OPTS="--autoscale=10,3 --concurrency=5"

据我所知,守护进程生成8组芹菜的工人,但我完全不知道该怎么autoscaleconcurrency一起做。我认为并发是一种指定工作人员可以使用的最大线程数的方法,而自动伸缩是工作人员在必要时扩展和缩减子级工作人员的一种方法。

这些任务的负载比较大(大约20-50kB),大约有2-3百万个这样的任务,但是每个任务的运行时间不到一秒钟。我看到内存使用量激增,因为代理将任务分配给每个工作人员,从而多次复制了有效负载。

我认为问题出在配置中,并且工作程序+并发+自动缩放的组合过多,我想更好地了解这三个选项的作用。


问题答案:

让我们区分工人和工人流程。您生成一个芹菜工人,一些处理此则产卵(视之类的东西--concurrency--autoscale,默认是产卵多的进程,在计算机上的内核)。除非要进行路由,否则在一台特定计算机上运行多个工作器是没有意义的。

我建议每台计算机仅使用默认进程数运行1个工作进程。通过消除工作进程之间的数据重复,这将减少内存使用。

如果仍然存在内存问题,则将数据保存到存储中,并仅将ID传递给工作程序



 类似资料:
  • 我所拥有的: 我用rabbitMQ作为代理运行芹菜,用redis作为结果后端。我有一个发送任务和处理任务的工人的应用程序。 我按如下方式进行了部署: 应用程序、redis、RabbitMQ和一个工作人员(让我们称他为“local_worker”)正在使用docker-compose在azure VM上运行,因此我使用docker版本的RabbitMQ和redis(6.2.5)。RabbitMQ和r

  • 我正在努力使我们的网站字体看起来完全像设计师的意思。 我们使用了谷歌的‘源无亲’文件。我试过几种策略: null 不幸的是,以上这些都没有使字体看起来相似。 有人有这个问题吗?

  • 我最近开始研究分布式计算以提高计算速度。我选择了芹菜。然而,我对一些术语不太熟悉。所以,我有几个相关的问题。 来自芹菜文档: ... Celery通过消息进行通信,通常使用代理在客户机和工作人员之间进行调解。为了启动任务,客户机将消息添加到队列中,然后代理将该消息传递给工作者。 什么是客户端(这里)?什么是经纪商?为什么消息通过代理传递?为什么 Celery 会使用后端和队列进行进程间通信? 当我

  • 我们正在运行气流1.10.1与芹菜。面对多个打开的连接。在DAG启动时,UI会挂起几分钟。 亮点: 所有节点都是裸金属的:CPU:40,MHz 2494.015,RAM 378G,10Gb NIC- MySQL MySQL连接: Worker.cfg Scheduler.cfg: 另外,我正在运行1000个简单任务,比如或

  • 那么有没有?或者javadoc有误导性(或者“动态”是什么意思)?如果没有,有没有这个功能的计划?

  • 我有所有的dpi可绘制目录(xxhdpi和xxxhdpi是必要的吗?)由九个补丁位图组成,drawable目录中的drawable资源文件检索所有缩放位图,我用drawable资源文件设置按钮的背景。。。现在,我的问题是,我还创建了按大小(小、正常等)的“缩放”布局目录,其中我尝试手动更改按钮的dp,如下所示: 这是我的xhdpi位图: ... 但在布局大目录中的Nexus 7虚拟仿真器(7.0“