代码之家  ›  专栏  ›  技术社区  ›  TemplateRex

气流:如何指定资源池的定量使用?

  •  6
  • TemplateRex  · 技术社区  · 6 年前

    我正在研究几个开放源码的工作流调度器,它们用于使用异构RAM的DAG作业。调度程序不仅应该调度少于最大线程数的线程,还应该将所有并发任务的RAM总量保持在可用内存以下。

    Luigi Q&A

    然后,任务将消耗多少资源作为 任务。这将限制你跑步 n 一次完成那个任务

    在配置中:

    [resources]
    api=1
    

    resources = {"api": 1}
    

    对于Airflow,我在它的文档中找不到相同的功能。最好的办法就是 specify a number of available slots in a resource pool

    :特别是对于Airflow,如何指定任务实例的定量资源使用情况?

    1 回复  |  直到 6 年前
        1
  •  3
  •   bartgras    6 年前

    假设你用的是 CeleryExecutor ,然后从airflow版本1.9.0开始,您可以管理Celery的任务并发性。这并不是您一直在问的内存管理,而是执行任务的并发工作线程的数量。

    CELERYD_CONCURRENCY here

    [编辑]

    事实上, Pools 假设您想限制资源消耗 task_id 这样在同一时间只运行两个实例。你唯一需要做的就是:

    • 创建池(在UI中: Admin -&燃气轮机; 游泳池 )指定名称,例如。 my_pool 并在字段中定义任务的并发性 Slots (在这种情况下 2

    • 在实例化 Operator 会执行这个的 任务id ,传递定义的池名称( pool=my_pool )

    推荐文章