Проблемы с Airflow 2.0: слишком много задач диспетчера воздушного потока
1 ответ
В Airflow 2.0 есть 2 способа создания дочерних процессов.
- разветвление родительского процесса (быстро)
- создание нового процесса python с использованием подпроцесса python (медленно)
По умолчанию airflow 2.0 использует метод (1). Разветвление родительского процесса происходит быстрее. С другой стороны, дочерний процесс не уничтожается после завершения задачи. Количество дочерних процессов увеличивается до тех пор, пока память не иссякнет.
Я переключился на метод подпроцесса (2), установив
execute_tasks_new_python_interpreter = True
. Здесь каждый процесс python уничтожается и каждый раз создается новый процесс. Это может быть медленным, но память используется эффективно.