簡體   English   中英

氣流的“並行度”和“ dag_concurrency”有什么區別

[英]what's the difference between airflow's 'parallelism' and 'dag_concurrency'

我不明白dag_concurrencyparallelism之間的區別。 文檔和此處的一些相關帖子在某種程度上與我的發現相矛盾。

我以前的理解是, parallelism參數允許您設置氣流和dag_concurrency可能的全局(跨所有DAG)TaskRun的最大數量,以表示單個Dag可能的TaskRun的最大數量。

因此,我將parallelism設置為8,將dag_concurrency為4,然后運行一個Dag。 我發現它一次運行8個TI,但我希望它一次運行4個。

  1. 那怎么可能?

  2. 另外,如果有幫助,我將這些任務的池大小設置為10左右。 但這沒關系,因為“ config”參數的優先級高於池的優先級,對嗎?

另一個答案只是部分正確:

dag_concurrency不會顯式控制每個工作者的任務。 dag_concurrency是每個dag_run同時運行的任務數。 因此,如果DAG具有可以同時運行10個任務的位置,但又想限制對工作人員的訪問量,則可以將dag_concurrency設置得較低。

隊列和池設置也會影響每個工作人員的任務數。

當您開始構建同時運行的DAG的大型庫時,這些設置非常重要。

並行性是所有工作人員和DAG的最大任務數。

parallelism性最好視為max_active_tasks_total 將其設置為8,說“我只希望一次在所有工作人員之間運行8個任務”。

dag_concurrency作為max_active_tasks_for_worker更好。 將其設置為4,表示“我只希望每個工作人員一次最多運行4個任務實例”。

因此,當您運行dag時,它正在2個兩個worker之間運行總共8個任務實例,每個worker運行4個任務。 我認為您只是dag_concurrenydag_concurreny

此答案部分來自此SO答案: SO答案

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM