【发布时间】:2024-08-21 19:10:02
【问题描述】:
我开始为 Python/Django Web 项目中的任务运行 celery,该项目托管在具有 8 个内核或 CPU 的单个 VM 上。我现在需要改进配置 - 我犯了菜鸟错误。
我使用supervisor 处理芹菜工人和节拍。在/etc/supervisor/conf.d/ 中,我有两个与worker 相关的conf 文件-celery1.conf 和celery1.conf。我应该...
1) 移除其中一个? 两者都产生不同的工人。 IE。以前的 conf 文件有command=python manage.py celery worker -l info -n celeryworker1。后者有command=python manage.py celery worker -l info -n celeryworker2。每台机器运行 1 个 worker 是权威的 stated here。
2) 在 conf 中修改 numprocs? 目前在 celery1.conf,我已经定义了 numprocs=2。在celery2.conf 中,我定义了numprocs=3*(见后面的页脚)。同时,在/etc/default/celeryd,我有CELERYD_OPTS="--time-limit=300 --concurrency=8"。发生什么了?在 celeryd 中,主管的 numprocs 优先于 concurrency,还是什么?我应该设置numprocs=0吗?
*两个文件的总 numprocs = 2+3 = 5。这检查出来了。 sudo supervisorctl 显示 5 个 celery 工作进程。但在 newrelic 中,我看到 45 个进程正在运行 用于 celeryd。有没有搞错?!即使主管创建的每个 proc 实际上都产生了 8 个 proc(通过 celeryd),总共 numprocs x concurrency = 5 x 8 = 40。这比 newrelic 显示的 45 少 5。需要指导来纠正这些错误。
比较截图:
对
【问题讨论】:
标签: python celery django-celery supervisord celeryd