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