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 獲取心跳和更新作業到數據庫中的頻率。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章