Prhub

#48186 [CI] Right-size test-area timeouts from nightly durations

原始 PR 作者 khluu 合并时间 2026-07-10 15:53 文件变更 30 提交数 1 评论 3 代码增减 +183 / -183

执行摘要

根据夜间 CI 数据调整所有测试域的超时时间

PR body 指出:many premerge timeouts are either well below the real runtime (risking spurious timeouts) or heavily over-provisioned (a hung job sits idle a long time before failing),因此需要根据夜间实际运行数据精确调整超时。

建议合并。该 PR 采用数据驱动方法精确调整超时,值得借鉴。未来可增加更频繁的自动调整机制。

讨论亮点

AndreasKaratzas 建议为 AMD 测试组增加额外的20分钟缓冲,理由是 AMD 环境不在 AWS 上,网络和共享资源波动大,且 HuggingFace 数据下载缓存问题未解决。khluu 响应已更新,最终 AMD 步骤的缓冲从15分钟增加到35分钟。

实现拆解

  1. 从 nightly full CI build (77252) 获取每个 step 的实际运行时长(observed = finished_at - started_at),仅统计成功运行的 step。
  2. 对于 sharded 步骤(parallelism/%N),使用所有 shard 的 max runtime。
  3. 对主步骤应用公式 round_up_to_5(observed + 15);对 AMD 镜像步骤应用 round_up_to_5(observed + 35)(额外+20缓冲)。
  4. 修改 30 个 .yaml 文件中对应 step 的 timeout_in_minutes 字段,保持其他配置不变。
  5. AMD 额外缓冲是由于其运行在 off-AWS 环境,网络和共享资源波动大,且 HuggingFace 数据下载缓存问题 (#36951) 仍存在。
文件 模块 状态 重要度
.buildkite/test_areas/engine.yaml CI 配置 modified 4.65
.buildkite/test_areas/kernels.yaml CI 配置 modified 4.6
.buildkite/test_areas/lm_eval.yaml CI 配置 modified 4.6
.buildkite/test_areas/misc.yaml CI 配置 modified 4.47
.buildkite/test_areas/models_language.yaml CI 配置 modified 4.47

分析完成后,这里会展示 LLM 生成的相对完整源码片段和详细注释。

评论区精华

为 AMD 测试组增加额外 20 分钟缓冲 other

AndreasKaratzas 建议为 AMD 测试组额外增加 20 分钟缓冲,因为 AMD 环境不在 AWS 上,网络和共享资源波动大,且 HuggingFace 数据下载缓存问题(#36951)未解决。

结论:khluu 接受建议,为所有 AMD 步骤额外增加了 20 分钟缓冲(总缓冲 35 分钟)。 · 已解决

风险与影响

主要风险是超时调整基于单次 nightly 运行数据,可能不具完全代表性;少数 step 的超时被大幅缩短(例如从120分钟降到45分钟),极端情况下可能仍不足。但公式提供了缓冲,且 AMD 有额外缓冲,风险较低。需持续监控 CI 稳定性。

对用户无直接影响。对 CI 系统:减少因超时设置过短导致的误报失败,提高 CI 可靠性;同时减少挂起作业的等待时间(对于之前超时设置过长的 step)。对团队:CI 更稳定,减少不必要的重试,提升开发效率。

依赖单次 nightly 观测数据 AMD 环境波动性 部分步骤超时大幅缩减

关联 Issue

未识别关联 Issue

当前没有检测到明确关联的 Issue 链接,后续同步到相关引用后会出现在这里。

完整报告

参与讨论