gpt4 book ai didi

resources - Airflow :如何指定资源池的定量使用?

转载 作者:行者123 更新时间:2023-12-04 04:28:31 25 4
gpt4 key购买 nike

我正在寻找几个具有不同RAM使用情况的DAG作业的开源工作流调度程序。调度程序不仅应调度少于最大线程数的线程,而且还应将所有并发任务的RAM总量保持在可用内存以下。

在此Luigi Q&A中,解释为

You can set how many of the resource is available in the config, and then how many of the resource the task consumes as a property on the task. This will then limit you to running n of that task at a time.

in config:

[resources]
api=1

in code for Task:

resources = {"api": 1}


对于Airflow,我无法在其文档中找到相同的功能。似乎最好的方法是 specify a number of available slots in a resource pool,并指定任务实例使用资源池中的单个插槽。但是,似乎无法指定任务实例在池中使用多个插槽。

问题:专门用于Airflow,如何指定任务实例的定量资源使用情况?

最佳答案

假设您使用的是CeleryExecutor,那么从 Airflow 版本1.9.0开始,您可以管理Celery的任务并发性。这并不是您一直在要求的内存管理,而是执行任务的并发工作线程的数量。

可调整的参数称为CELERYD_CONCURRENCY,并且here很好地解释了如何在Airflow中管理与 celery 相关的配置。

[编辑]

实际上,Pools也可以用来限制并发性。
假设您要限制资源匮乏的task_id,以便仅同时运行2个实例。您唯一需要做的是:

  • 创建池(在UI中:Admin-> Pools)为其分配名称,例如my_pool并在字段Slots(在本例中为2)中定义任务的并发
  • 实例化将执行此 Operatortask_id时的
  • ,传递定义的池名称(pool=my_pool)
  • 关于resources - Airflow :如何指定资源池的定量使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52140942/

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