0
点赞
收藏
分享

微信扫一扫

AirFlow性能调优

修改 airflow.cfg 配置

 

不加载example dag

load_examples = False  # 这个配置只有在第一次启动airflow之前设置才有效

 

 

 

修改检测新dag间隔

最好还是修改一下,因为默认为0,没有时间间隔, 很耗资源。

AirFlow性能调优_默认值

min_file_process_interval = 10

 

 

 

​​怎么使 Airflow dag 运行得更快?​​

 

​parallelism​​​: 此变量控制 Airflow worker 可以同时运行的任务实例的数量。 用户可以通过改变​​airflow.cfg​​中的 parallelism 调整 并行度变量。

AirFlow性能调优_服务器_02

 

 

 

 

​concurrency​​​: Airflow scheduler 在任何时间不会运行超过 ​​concurrency​​ 数量的 DAG 实例。 concurrency 在 Airflow DAG 中定义。

如果在 DAG 中没有设置 concurrency,则 scheduler 将使用​​airflow.cfg​​​文件中定义的​​dag_concurrency​​作为默认值。

AirFlow性能调优_mysql_03

 

 

 

 

​max_active_runs​​​: Airflow scheduler 在任何时间不会运行超过 ​​max_active_runs​​ DagRuns 数量。

如果在 DAG 中没有设置​​max_active_runs​​​ ,则 scheduler 将使用​​airflow.cfg​​​文件中定义的​​max_active_runs_per_dag​​作为默认值。

AirFlow性能调优_服务器_04

 

 

 

 

​​如何减少 Airflow UI 页面加载时间?​​

如果你的 dag 需要很长时间才能加载,你可以减小​​airflow.cfg​​​中的​​default_dag_run_display_number​​的值。 此可配置控制在 UI 中显示的 dag run 的数量,默认值为 25。

AirFlow性能调优_服务器_05

 

 

 

 

​​如何修复异常: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文件不好找的情况,解决办法可以参考

​​javascript:void(0)​​

 

 

 

​​如何减少生产环境中的 Airflow dag 调度延迟?​​

​max_threads​​​: scheduler 将并行生成多个线程来调度 dags。 这数量是由​​max_threads​​参数控制,默认值为 2.用户应在生产中将此值增加到更大的值(例如,scheduler 运行机器的 cpus 数量 - 1)。

AirFlow性能调优_默认值_06

 

 

 

​scheduler_heartbeat_sec​​​: 用户应考虑将​​scheduler_heartbeat_sec​​配置增加到更高的值(例如 60 秒),该值控制 airflow scheduler 获取心跳和更新作业到数据库中的频率。

AirFlow性能调优_默认值_07

 

举报

相关推荐

0 条评论