AirFlow性能調優


修改 airflow.cfg 配置

 

不加載example dag

load_examples = False  # 這個配置只有在第一次啟動airflow之前設置才有效

 

 

 

修改檢測新dag間隔

最好還是修改一下,因為默認為0,沒有時間間隔, 很耗資源。

min_file_process_interval = 10

 

 

 

怎么使 Airflow dag 運行得更快?

 

parallelism: 此變量控制 Airflow worker 可以同時運行的任務實例的數量。 用戶可以通過改變airflow.cfg中的 parallelism 調整 並行度變量。

 

 

 

 

concurrency: Airflow scheduler 在任何時間不會運行超過 concurrency 數量的 DAG 實例。 concurrency 在 Airflow DAG 中定義。

如果在 DAG 中沒有設置 concurrency,則 scheduler 將使用airflow.cfg文件中定義的dag_concurrency作為默認值。

 

 

 

 

max_active_runs: Airflow scheduler 在任何時間不會運行超過 max_active_runs DagRuns 數量。

如果在 DAG 中沒有設置max_active_runs ,則 scheduler 將使用airflow.cfg文件中定義的max_active_runs_per_dag作為默認值。

 

 

 

 

如何減少 Airflow UI 頁面加載時間?

如果你的 dag 需要很長時間才能加載,你可以減小airflow.cfg中的default_dag_run_display_number的值。 此可配置控制在 UI 中顯示的 dag run 的數量,默認值為 25。

 

 

 

 

如何修復異常:Global variable explicit_defaults_for_timestamp needs to be on (1)?

這意味着在 mysql 服務器中禁用了explicit_defaults_for_timestamp,您需要通過以下方式啟用它:

  • 在 my.cnf 文件的 mysqld 部分下設置explicit_defaults_for_timestamp = 1 。
  • 重啟 Mysql 服務器。

這種解決方法更多在針對mysql是安裝在服務器上,如果mysql部署在容器里面,my.cnf文件不好找的情況,解決辦法可以參考

https://www.cnblogs.com/braveym/p/12169788.html

 

 

 

如何減少生產環境中的 Airflow dag 調度延遲?

max_threads: scheduler 將並行生成多個線程來調度 dags。 這數量是由max_threads參數控制,默認值為 2.用戶應在生產中將此值增加到更大的值(例如,scheduler 運行機器的 cpus 數量 - 1)。

 

 

 

scheduler_heartbeat_sec: 用戶應考慮將scheduler_heartbeat_sec配置增加到更高的值(例如 60 秒),該值控制 airflow scheduler 獲取心跳和更新作業到數據庫中的頻率。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM