气流1.9.0-任务执行之间的长延迟



i最近从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

我的测试环境和产品环境中有气流设置。这在我的产品环境中(尽管仍然令人担忧(中不是一个问题,但对我的测试环境来说是一个大问题。升级后,CPU的使用量明显更高,因此我要么接受更高的CPU使用,要么尝试以更高的配置值降低它。但是,这为我的测试DAG执行时间增加了大量时间。

为什么MIN_FILE_PROCESS_INTERVAL会影响DAG计划后任务之间的时间?还有其他配置选项可以解决我的问题吗?

您可能想研究的另一个选项是

SCHEDULER_HEARTBEAT_SEC

此设置通常也设置为非常紧密的间隔,但可能会放松一点。此设置与

结合
MAX_THREADS

为我们带来了技巧。开发机器足够快,可以重新部署,但没有炎热,发光的CPU。

最有可能的原因是dags文件夹中的python文件太多,气流调度程序扫描了实例化的dag太多。

建议首先减少调度程序和工人下的DAG文件数量。同时,Scheduler_heartbeat_sec和max_threads值尽可能大。

最新更新