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

