gpt4 book ai didi

Python Celery 线程、工作线程和 vCPU

转载 作者:太空宇宙 更新时间:2023-11-03 18:36:27 25 4
gpt4 key购买 nike

我们编写了一个应用程序,通过电子邮件向我们客户的 200,000 多个客户发送账单信息。

目前,我们使用的是批处理程序,需要 2 天多的时间才能按顺序发送所有电子邮件。

我们已将整个程序转移到 Celery,并且我们已经在常规 2 个工作负载上看到了一些显着的改进。

有人对 Celery 进行过基准测试吗?

文档指出,为了提高性能,worker 的数量必须等于 CPU 的数量。假设我们虚拟化服务器并在物理 8 核服务器上设置 32 个 vCPU,我们可以以 32 线程并发运行它吗?

邮件通过不同的邮件服务器发送,服务器仅运行 Rabbit MQ、Celery 和应用程序。

请告知正确的工作线程、线程和 vcpu 数量,以避免不必要的排队和延迟。

谢谢!

最佳答案

简短回答:您需要了解自己在做什么,并可能自己进行衡量

更长:

主要问题是您的任务是否受 CPU 限制或 I/O(网络/磁盘)限制。如果您的任务受 CPU 限制(可能是生成模板、图像等任务),则通过添加工作线程不会获得任何改进。然而,大多数情况下,您正在执行 I/O 绑定(bind)(网络)任务,并且如果您正在等待网络确认,并且邮件服务器等不存在瓶颈,那么您可能能够通过使用更多工作线程来获得更高的结果。

为了更好地理解这一点,我强烈建议您慢慢浏览 David Beazley 令人大开眼界的演示:An Introduction to Python Concurrency 。这不包括 Celery 和 Tornado,但很好地概述了底层技术和问题,并列出了解决方案(带有示例)。

关于Python Celery 线程、工作线程和 vCPU,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21516404/

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