airflow - Airflow 2.0 问题:气流监控任务过多
问题描述
我使用 docker swarm 和 Celery Executor 安装了气流 2.0。
1 周后,芹菜工人的内存溢出airflow task supervisor
(附截图)
有人遇到过这样的问题吗?有什么建议么 ?
解决方案
在 Airflow 2.0 中,有两种创建子进程的方法。
- 父进程的分叉(快速)
- 使用 python 子进程生成一个新的 python 进程(慢)
默认情况下,airflow 2.0 使用 (1) 方法。分叉父进程更快。另一方面,子进程在任务完成后不会被杀死。子进程的数量不断增加,直到内存耗尽。
我通过设置切换到子流程方法(2)execute_tasks_new_python_interpreter = True
。在这里,每个 python 进程都被杀死,并且每次创建新进程。这可能很慢,但有效地利用了内存。
推荐阅读
- javascript - 通过 Axios post 发送带有 formdata 的文本数据
- acpi - ACPI的控制方法调用机制
- powershell - 读取日志文件的 PowerShell 脚本中的条件
- c++ - 如何解码 h264 流
- solidity - Module._compile (internal/modules/cjs/loader.js:1063:30)
- python - 如何使用 Class 装饰器包装器?
- ios - UITableView swift上没有出现自定义xib单元格
- docker - 如何在 VSCode 开发容器内外使用 docker-compose 挂载卷?
- apache-kafka - 为什么 Clickhouse 不支持向 kafka 表添加列
- apache-tika - 如何修复 Tika 服务器 413 实体太大错误