【问题标题】:Airflow2 very slow with MySql5.7 on LocalExecutor - Got an error reading communication packets在 LocalExecutor 上使用 MySql 5.7 时 Airflow 2 非常慢 - 读取通信数据包时出错
【发布时间】:2021-09-15 22:19:33
【问题描述】:

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

中止连接 11 到 db:'airflow' 用户:'airflow' 主机: '192.168.0.3'(读取通信包时出错)

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

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

【问题讨论】:

  • 我很抱歉,但是这样的错误是网络/mysql配置问题的指标,而不是编程问题。 Airfow 自己的支持站点或 DBA 站点是解决此类问题的更好地方,因为 SO 是解决编程相关问题的地方。

标签: mysql docker airflow


【解决方案1】:

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

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

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

如果你在 MacOS 上(猜测),我相信 Docker Engine 的默认内存是 2GB,所以你需要增加它。

【讨论】:

  • 将 docker 引擎内存从 2gb 增加到 4gb,调度程序和网络服务器现在性能更好。谢谢
猜你喜欢
  • 2011-06-26
  • 1970-01-01
  • 2018-08-03
  • 2022-10-05
  • 1970-01-01
  • 1970-01-01
  • 2019-09-17
  • 2020-02-04
  • 1970-01-01
相关资源
最近更新 更多