我最近从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设置为60秒,则现在它等待执行我的DAG中每个任务之间的时间不少于60秒,因此,如果我的DAG有4个连续任务,则现在已经将4分钟添加到我的执行时间中。例如:
start -> [task1] -> [task2] -> [task3] -> [task4]
^ ^ ^ ^
60s 60s 60s 60s
我在测试环境和生产环境中都安装了Airflow。在我的生产环境中这不是很严重的问题(虽然仍然令人担忧),但对我的测试环境来说是一个大问题。升级后,CPU使用率显著增加,所以我要么接受更高的CPU使用率,要么尝试通过更高的配置值减少它。不过,这会显著增加我的测试DAG执行时间。
为什么min_file_process_interval会影响DAG被调度后任务之间的时间?是否有其他的配置选项可以解决我的问题?