芹菜-最小化内存消耗

2024-04-20 02:37:30 发布

您现在位置:Python中文网/ 问答频道 /正文


Tags: python
3条回答

工人的自然数量接近你拥有的核心数量。工人在那里,以便cpu密集型任务可以有效地使用整个核心。代理在那里,因此没有工作人员处理它们的请求将保持排队状态。队列的数量可能很高,但这并不意味着您也需要大量的代理。一个代理就足够了,或者如果以后发现快速的工作队列交互是有益的,您可以将队列分成每台机器一个代理。

你的问题似乎与此无关。我猜您的代理不提供消息队列api,您必须保留大量请求。如果是这样的话,您需要一些(强调的不是很多)事件进程,例如twisted或node.js-based。

请阅读:

http://docs.celeryproject.org/en/latest/userguide/workers.html#concurrency

听起来好像每个芹菜都有一个工人。这似乎不对。你每棵芹菜应该有几十个工人。继续增加工人的数量(降低芹菜的数量),直到你的系统非常繁忙和非常缓慢。

S.洛特是对的。主实例使用消息并将它们委托给工作池进程。在一台机器上运行300个池进程可能没有意义!尝试4或5乘以CPU核心数。有些人已经做了一些尝试,但是你必须为你的应用程序做一些实验。

http://celeryq.org/docs/userguide/workers.html#concurrency

对于即将发布的2.2版本,我们正在研究Eventlet池支持,今年5月 对于IO绑定的任务来说,这是一个很好的选择,它将使您能够运行1000多个线程 虽然内存开销很小,但仍处于试验阶段,错误正在修复中 最后的版本。

http://groups.google.com/group/celery-users/browse_thread/thread/94fbeccd790e6c04

即将发布的2.2版本还支持autoscale,它可以根据需要添加/删除进程。请参阅更改日志: http://ask.github.com/celery/changelog.html#version-2-2-0 (此更改日志尚未完全写入)

相关问题 更多 >