首页 > 解决方案 > 在 LocalExecutor 上使用 MySql5.7 时 Airflow2 非常慢 - 读取通信数据包时出错

问题描述

按照此处的 MySql 指南,使用docker-compose 文件。首先,我启动运行 db 迁移并在 mysql 数据库中创建管理员用户的气流初始化容器。然后运行调度程序,我开始在 MySql 中看到以下日志;

Aborted connection 11 to db: 'airflow' user: 'airflow' host: '192.168.0.3' (读取通信数据包时出错)

更多这些日志,在运行 webserver 之后。但是,我可以像往常一样登录 UI 并触发 DAG,但 UI 非常慢(与使用带有顺序执行器的 SqlLite db 时相比)。我主要The scheduler does not appear to be running. Last heartbeat was received <x seconds/minutes> ago.在 UI 中得到警告。我尝试增加这里提到的 max_allowed_pa​​cket、max_connections 和 interactive_timeout ,但没有运气。我还将 sql_alchemy_pool_recycle 加倍到 3600。

此问题在早期版本的气流中报告。我期待 UI 运行流畅。有没有人遇到过这个问题?任何提示或线索?

标签: mysqldockerairflow

解决方案


没有太多信息,但是使用 MySQL 的 Airflow 应该比 Sqlite 快得多。

最有可能发生的情况是您没有为 docker 引擎分配足够的内存,并且 MySQL/Airflow 开始使用交换磁盘。

我相信默认情况下 MySQL 容器至少使用 800 MB,如果您不将其配置为使用更少并且与运行 Airflow 一起使用,它们只能使用 ~ 4GB。

如果您使用的是 MacOS(猜测),我相信 Docker Engine 的默认内存为 2GB,因此您需要增加它。


推荐阅读