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 获取心跳和更新作业到数据库中的频率。

原文地址:https://www.cnblogs.com/braveym/p/12672564.html