gpt4 book ai didi

python - 并发, worker 和自动缩放之间的 celery 差异

转载 作者:IT老高 更新时间:2023-10-28 21:32:02 29 4
gpt4 key购买 nike

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

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

我知道该守护进程会产生 8 个 celery worker,但我完全不确定 autoscaleconcurrency 一起做什么。我认为并发是一种指定工作人员可以使用的最大线程数的方法,而自动缩放是工作人员在必要时扩大和缩小子工作人员的一种方式。

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

我认为问题出在配置中,worker + concurrency + autoscaling 的组合过度,我想更好地了解这三个选项的作用。

最佳答案

让我们区分工作进程和工作进程。你生成一个 celery worker,然后生成许多进程(取决于 --concurrency--autoscale 之类的东西,默认情况下生成与核心一样多的进程在机器上)。除非您想进行路由,否则在特定机器上运行多个工作器是没有意义的。

我建议在默认进程数的情况下每台机器只运行 1 个工作人员。这将通过消除工作人员之间的数据重复来减少内存使用。

如果您仍然有内存问题,则将数据保存到存储中并仅将 id 传递给工作人员。

关于python - 并发, worker 和自动缩放之间的 celery 差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31898311/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com