airflow - 运行太多任务时气流运行状况检查失败?
问题描述
我使用 LocalExecutor 在 Marathon 上运行了一个容器 Airflow 设置。我正在运行一个运行状况检查,/health
对 Airflow 网络服务器上的端点执行 ping 操作。它目前有 5 个 CPU 分配给它,并且网络服务器正在运行 4 个 Gunicorn。昨晚我有大约 25 个任务同时运行。这导致运行状况检查失败,没有有用的错误消息。容器刚刚收到一个 SIGTERM。我想知道是否有人可以提出导致健康检查失败的可能罪魁祸首?是CPU争用吗?我是否没有创建足够的 gunicorn 工人,以便他们能够响应健康检查请求?我有一些想法,但我不确定原因。
以下是 Marathon 中的健康检查配置:
[
{
"gracePeriodSeconds": 300,
"intervalSeconds": 60,
"timeoutSeconds": 20,
"maxConsecutiveFailures": 3,
"portIndex": 0,
"path": "/admin/",
"protocol": "HTTP",
"ignoreHttp1xx": false
}
]
解决方案
是的,我以前见过类似的问题,是否可以从 LocalExecutor 和单节点 Airflow 服务中迁移出来。
如果没有,这是垂直扩展您的实例的情况,以便能够在来自 Tasks // Scheduler 的大量计算需求期间处理 Web 请求。
推荐阅读
- python - 使用 monad 在 python 中计算循环
- javascript - 使用 AVG() 后访问 MySQL RowDataPacket
- c# - Kafka 集群不可用检测(3 个代理)
- php - 从添加按钮 PHP Codeigniter 加载与 ID 相关的表单字段
- asynchronous - 微服务异步架构实现服务相互关联
- python - 如何在序列中注册 ID 和出现次数(或次数)?
- scala - 需要帮助来解决我的代码中的一个问题
- android - 使用 Twilio 可编程聊天聊天模块启用 Proguard 后无法正常工作
- java - JPQL - null 到布尔值?
- javascript - 调用 REST API、JavaScript 时的 CORS 策略