mysql - 在 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_packet、max_connections 和 interactive_timeout ,但没有运气。我还将 sql_alchemy_pool_recycle 加倍到 3600。
此问题在早期版本的气流中报告过。我期待 UI 运行流畅。有没有人遇到过这个问题?任何提示或线索?
解决方案
没有太多信息,但是使用 MySQL 的 Airflow 应该比 Sqlite 快得多。
最有可能发生的情况是您没有为 docker 引擎分配足够的内存,并且 MySQL/Airflow 开始使用交换磁盘。
我相信默认情况下 MySQL 容器至少使用 800 MB,如果您不将其配置为使用更少并且与运行 Airflow 一起使用,它们只能使用 ~ 4GB。
如果您使用的是 MacOS(猜测),我相信 Docker Engine 的默认内存为 2GB,因此您需要增加它。
推荐阅读
- r - 为什么第二个 ifelse 没有在 R 中评估,为什么 if else 没有矢量化?
- html - 获取股票的动态数据
- docker - docker osxia LDAP 中的访问权限
- azure - 无法使用 Azure CLI 访问计费信息
- r - 如何将 keras 模型加载到 Rmarkdown 文件中并在 knitr 中进行预测?
- c# - 我如何在 asp.net 中显示 Dropbox 图像
- css - 嵌套的弹性项目没有被缩小。min-width:0 解决问题
- c# - C#:.NET HttpClient 超时太快
- python - 由于 EnvironmentError 无法安装软件包:[WinError 32] 该进程无法访问该文件,因为它正被另一个进程使用
- javascript - 带有自定义 JS 文件的 Angular 应用程序在 localhost 和服务器上的运行方式不同