我可以通过向 Airflow 中的运算符添加更多 cpu 来提高处理速度吗?

Can I increase the processing speed by adding more cpus to operators in Airflow?

airflow.cfg 中有一个名为 [operators] 的部分,其中 default_cpus 设置为 1 并且 default_ramdefault_disk 都是设置为 512.

我想了解如果我增加这些参数是否会提高处理速度。

我查看了来源,所有操作员都可以使用这些设置,但它们从未被操作员或任何执行者使用过。

所以我稍微回顾一下历史,并查看了导致该 PR 的 the commit that introduced those settings and they are, quoting the JIRA ticket

optional resource requirements for use with resource managers such as yarn and mesos

然而,Mesos 执行器是一个社区贡献,它不利用此属性,只是 assigns the same amount of resources to every task,并且 YARN 执行器还不存在 AFAIK(从版本 1.9 开始)。

我曾经与 Airflow 团队讨论过是否有一种方法可以使用 Mesos 执行器在每个任务的基础上分配资源,他们回复我 their strategy to assign resources to tasks using the Celery executor,以防它可能是帮助您了解如何管理资源。

关于您在更一般意义上提出的核心问题,您可以从任务中获得的吞吐量与分配给它的资源相关,在很大程度上取决于任务本身:当然如果您为它分配多个内核,则可以利用多个处理器的计算密集型任务会出现减速,而 I/O 密集型任务(如在不同系统之间复制数据)可能不会有太大改善。