小编FER*_*UZA的帖子

Airflow Scheduler 内存不足问题

我们正在试验 Apache Airflow(版本 1.10rc2,使用 python 2.7)并将其部署到 kubernetes、webserver 和调度程序到不同的 pods,并且数据库也在使用 cloud sql,但是我们一直面临调度程序内存不足的问题荚。

在 OOM 的那一刻,我们只运行了 4 个示例 Dag(大约 20 个任务)。Pod 的内存为 1Gib。我在其他帖子中看到,一个任务在运行时可能会消耗大约 50Mib 的内存,并且所有任务操作都在内存中,没有任何内容刷新到磁盘,因此已经提供了 1Gb。

是否有任何经验法则可以用来计算基于并行任务的调度程序需要多少内存?

除了降低并行度之外,是否有任何调整可以减少调度程序本身的内存使用?

我认为我们的用例不需要 Dask 或 Celery 为工人使用更多机器水平扩展 Airflow。

关于配置的更多细节:

executor = Localexecutor
parallelism = 10
dag_concurrency = 5
max_active_runs_per_dag = 2
workers = 1
worker_concurrency = 16
min_file_process_interval = 1
min_file_parsing_loop_time = 5
dag_dir_list_interval = 30

当时运行的 dag 是 example_bash_operator、example_branch_operator、example_python_operator 和我们开发的一个 quickDag。

在某些情况下,所有这些都只是简单的任务/操作符,如 DummyOperators、BranchOperatos、BashOperators,但只执行 echo 或 sleep 并且 PythonOperators 也只执行 sleep 。总共大约有 40 个任务,但并非所有任务都并行运行,因为其中一些是下游、依赖等,我们的并行度设置为 10,如上所述只有一个工作人员,并且dag_concurrency …

airflow airflow-scheduler

4
推荐指数
1
解决办法
8305
查看次数

标签 统计

airflow ×1

airflow-scheduler ×1