我最近从v1.7.1.2升级到v1.9.0,升级后我注意到CPU使用率显着增加.在进行了一些挖掘之后,我将其跟踪到这两个调度程序配置选项:min_file_process_interval(默认为0)和max_threads(默认为2).
正如预期的那样,增加min_file_process_interval可以避免紧密循环并在空闲时丢弃CPU使用率.但我不明白为什么min_file_process_interval影响任务执行?
如果我将min_file_process_interval设置为60s,它现在在我的DAG中执行每个任务之间等待不少于60秒,所以如果我的dag有4个连续任务,它现在已经为我的执行时间增加了4分钟.例如:
start -> [task1] -> [task2] -> [task3] -> [task4]
^ ^ ^ ^
60s 60s 60s 60s
Run Code Online (Sandbox Code Playgroud)
我在我的测试环境和prod env中设置了Airflow.这在我的生产环境中不是一个问题(虽然仍然有关),但对我的测试环境来说是个大问题.升级后,CPU使用率显着提高,因此我要么接受更高的CPU使用率,要么尝试使用更高的配置值来降低CPU使用率.但是,这为我的测试dags执行时间增加了大量时间.
为什么min_file_process_interval会影响DAG调度后的任务之间的时间?是否有其他配置选项可以解决我的问题?