首页 > 解决方案 > 运行太多任务时气流运行状况检查失败?

问题描述

我使用 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
  }
]

标签: airflow

解决方案


是的,我以前见过类似的问题,是否可以从 LocalExecutor 和单节点 Airflow 服务中迁移出来。

如果没有,这是垂直扩展您的实例的情况,以便能够在来自 Tasks // Scheduler 的大量计算需求期间处理 Web 请求。


推荐阅读