我使用Docker Swarm和Celery Executor安装了Airflow 2.0。 1周后,airflow task supervisor导致celery工作进程的内存溢出(附有截图)。 是否有人遇到过类似的问题?有什么建议吗?
在Airflow 2.0中,有两种创建子进程的方法。 fork父进程(快速) 使用python subprocess生成新的python进程(较慢) 默认情况下,Airflow 2.0使用方法(1)。 fork父进程更快。另一方面,任务完成后子进程不会被杀死。子进程数量会不断增加,直到内存耗尽。我通过设置execute_tasks_new_python_interpreter = True切换到subprocess方法(2)。在这里,每个python进程都被杀死,并且每次都创建新进程。这可能会比较慢,但内存得到有效利用。