You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Cloud Composer v2健康检查出现误报/不稳定问题技术问询

问题根因

  1. 预览版镜像自带缺陷:你使用的composer-2.0.0-preview.5-airflow-2.1.4属于Composer v2早期预览版本,webserver的重载逻辑存在未修复的bug。webserver默认会定期扫描插件目录变更触发平滑重载,而gcs-syncd pod负责同步GCS存储桶中的DAG、插件文件,会定期清理本地目录中GCS上不存在的.pyc缓存文件,二者操作时序冲突产生竞态:webserver读取旧缓存文件做校验前,文件已经被gcs-syncd删除,未捕获的IO异常会直接触发webserver进程强制退出。
  2. 监控状态联动:webserver重启过程中服务暂时不可用,airflow-monitoring pod的健康探测失败,就会导致监控面板红/绿状态交替,重启过程中gunicorn进程需要销毁旧worker、拉起新worker,期间请求堆积就会出现响应缓慢的问题。

定位方法

  • 日志时序校验:同时拉取同时间窗口的gcs-syncd pod日志和webserver日志,确认.pyc文件删除操作和webserver的文件不存在报错、HUP信号触发的时间点完全对应,即可确认竞态条件存在
  • 配置验证:临时修改Airflow配置,将[webserver] reload_on_plugin_change设置为False,重启webserver后观察是否还会出现定期重启的现象,如果重启停止即可确认触发来源是插件目录扫描重载逻辑

修复方案

永久修复

升级Composer环境到正式稳定版镜像,废弃预览版的composer-2.0.0-preview.5镜像,使用composer-2.0.3-airflow-2.1.4及以上的正式发布版本,该版本中官方已经修复了对应竞态问题,优化了异常捕获逻辑,.pyc缓存文件缺失不会再触发webserver进程退出。

临时规避方案(若暂时无法升级镜像)

  • 配置gcs-syncd同步排除规则:在Composer环境的同步配置中添加__pycache__目录排除规则,避免同步进程删除webserver本地生成的缓存文件
  • 关闭webserver自动重载:修改Airflow配置项[webserver] reload_on_plugin_change = False,修改后webserver不会主动扫描插件目录变更触发重载,更新插件后手动重启webserver即可生效
  • 调大健康检查阈值:将webserver的存活探针初始延迟、失败阈值参数调大,避免短时间重启导致的监控状态异常

内容的提问来源于stack exchange,提问作者Tobi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 12:15:03