The GitHub Blog

GitHub availability report: September 2026

8.5内容质量
GitHub availability report: September 2026

TL;DR · AI 摘要

GitHub在2026年9月的可用性报告中展示了其在基础设施优化、Azure迁移和过载控制方面的进展,同时承认仍面临容量不均和迁移目标未达成的挑战。

核心要点

  • Azure处理了65.4%的GitHub核心应用读取流量,48.3%的Git读取流量。
  • 过载控制措施使Redis操作减少28%,响应时间缩短66%。
  • 未达成9月30日的迁移目标,部分数据库迁移因容量不均暂停。

结构提纲

按章节快速跳转。

  1. 概述GitHub在2026年9月的可用性报告,总结进展和挑战。

  2. 减少共享数据库压力,添加过载控制,迁移至Azure。

  3. 51%的主MySQL数据库迁移,处理流量百分比。

  4. Redis操作减少28%,响应时间优化。

  5. 容量不均导致暂停,未达成迁移目标。

  6. 继续优化,目标在10月底解锁全部容量。

思维导图

用一张图看清主题之间的关系。

查看大纲文本(无障碍 / 无 JS 友好)
  • GitHub 2026年9月可用性报告
    • 基础设施改进
      • Azure迁移
      • 过载控制
    • 数据库优化
      • MySQL迁移
      • 存储释放
    • 挑战与目标
      • 容量不均
      • 迁移目标未达成

金句 / Highlights

值得收藏与分享的关键句。

#GitHub#Azure#数据库优化#高可用性#云迁移
打开原文

我们上一次更新涵盖了 8 月的内容。由于其他公开内容正在说明 8 月 17 日的中断事件,我们未在 9 月发布新报告。本期内容涵盖过去两个月的进展。

8 月和 9 月的简要总结:我们缓解了共享数据库压力,新增了过载控制机制,为 GitHub Actions 创造了容量空间,扩展了拉取请求的故障隔离范围,并将更多生产工作负载迁移至 Azure。重大事件、容量暂停以及未达成的迁移目标表明,相关工作尚未完成。

截至 10 月 7 日,160 个生产服务中有 120 个已部署至美国中部区域,51 个主要 MySQL 数据库中有 13 个已完成迁移。Azure 当前处理了 GitHub 核心应用 65.4% 的读取流量、Git 读取流量的 48.3% 以及流处理流量的 80.2%。这些百分比反映的是不同工作负载,不应简单相加。

由于可用性区域间的容量分布不均,我们于 9 月 11 日暂停了美国中部区域的部署和流量增长。临时缓解后,9 月 18 日恢复了逐步扩容,但持久性容量优化工作仍在继续,目标是到 10 月底前释放所有可用容量。我们未能实现 9 月 30 日将所有生产服务迁移至该区域的激进目标。在一次计划中的数据库故障转移过程中,自动化应急流程意外断开了美国中部区域的数据库副本,导致该区域客户中断。我们已在计划交接期间禁用该流程,同时改进恢复机制。

除区域迁移外,24 个认证核心表已从 GitHub 最古老的共享数据库迁移出去,每秒减少约 100 万次查询请求。支撑问题和拉取请求的数据库集群清理了约 9.8 亿条冗余编辑历史记录,释放了约 1.8 太字节的可恢复存储空间。每周死锁数量较 6 月峰值下降约 77%,持续清理机制现已防止同类无限制增长问题重现。

目前,当共享依赖项失效时,一半采样拉取请求流量可有限功能继续运行。生产环境数据显示,在共享数据库事件期间,多个读取操作仍保持可用。数据库流量路由机制也能在流量高峰时自动扩容;9 月 23 日拉取请求活动激增期间,某组实例数量从 14 个扩展至 19 个。生产环境现部署了过载控制机制,允许响应者在更广泛饱和前拒绝低优先级请求,以保护高优先级 API 和 Web 工作流。操作文档和培训已全部完成。

GitHub Actions 的运营容量也获得提升。生产环境变更使 Redis 操作量减少约 28%,相对 CPU 使用率下降约 30%。独立的基础设施缓存使 Redis 带宽减少 84%,平均响应时间缩短 66%,主要库存请求的中位响应时间缩短 96%,排队请求数量减少 95%。

8 月 6 日的操作中断、8 月 17 日的 github.com 中断、9 月的故障转移中断以及受控容量暂停事件提醒我们,只有在真实场景下降低客户风险时,可衡量的改进才有意义。核心原则始终如一:先确保可用性,再提升容量,最后添加功能。

  • * *

9月13日 09:16 UTC(持续1小时28分钟)

图1:标题为“GitHub.com 边缘故障率”的折线图。在约8:45之前,前端门故障请求百分比保持在0%附近,随后在标有“影响”的阴影时段内剧烈波动——主要在0.5%至1.1%之间,峰值约1.2%——到10:00时回落至0%附近,并在约12:15前保持稳定,仅有微小波动。
图1:标题为“GitHub.com 边缘故障率”的折线图。在约8:45之前,前端门故障请求百分比保持在0%附近,随后在标有“影响”的阴影时段内剧烈波动——主要在0.5%至1.1%之间,峰值约1.2%——到10:00时回落至0%附近,并在约12:15前保持稳定,仅有微小波动。

发生了什么?

问题原因

后台数据清理任务增加了共享数据库的负载。该任务设计了保护机制,当数据库副本滞后时会减缓写入速度,但该机制未考虑主数据库服务器的入站负载。因此,任务持续运行直至主数据库达到连接限制。当主数据库连接耗尽时,依赖它的请求无法可靠完成。

另外两个因素加剧了影响并延迟了恢复。首先,这些数据库调用没有快速超时机制,导致请求处理程序在数据库阻塞时等待而非快速失败。其次,围绕令牌创建的重试循环持续发送已失败的写入请求,使数据库保持饱和状态而非恢复。

我们如何应对?

  1. 后台数据清理任务开始向共享数据库写入数据。
  2. 该任务的保护机制监控副本延迟,但未考虑主数据库服务器的负载增长。
  3. 主数据库连接耗尽,导致依赖服务的请求失败或运行缓慢。
  4. 自动监控检测到事件,并将故障追溯到共享数据库的负载。
  5. 我们减少了内部负载并暂停了后台任务。
  6. 数据库恢复后,受影响服务的错误率恢复正常。

我们如何减少类似事件的发生或影响?

  • 我们正在实施额外的保护机制,以提高数据库弹性和服务可用性。这些措施将更好地根据数据库可用容量控制后台处理,减少故障期间不必要的重试,并限制缓慢数据库请求的影响。
  • 我们还改进了服务启动行为,确保临时数据库连接问题不会影响服务恢复。

9月28日 21:16 UTC(持续52分钟)

图2:标题为“Copilot代码审查未返回结果”的折线图。在标有“审查未完成”的阴影时段内,未完成审查的百分比从约19:25的0%附近上升至19:35的约85%,并保持在该水平直到约21:30。随后下降,在约21:50回落至0%附近,并在23:00前保持在0%附近,仅有小幅波动。
图2:标题为“Copilot代码审查未返回结果”的折线图。在标有“审查未完成”的阴影时段内,未完成审查的百分比从约19:25的0%附近上升至19:35的约85%,并保持在该水平直到约21:30。随后下降,在约21:50回落至0%附近,并在23:00前保持在0%附近,仅有小幅波动。

发生了什么?

问题原因

Copilot代码审查使用独立服务执行审查,并返回两种版本的结果:一种是排除审查评论的精简版,另一种是包含完整审查结果的完整版。Copilot代码审查仅从完整版发布审查结果。该服务的一项更改开始仅向部分客户发送完整版,而向其他客户仅发送精简版。

因此,Copilot代码审查无法生成审查结果,但报告称任务已成功完成。由于缺乏监控,缺失的审查结果未被检测到。由于部分审查在30分钟后仍未完成,触发了向一线响应人员的警报,从而发现了这一事件。

我们通过撤销更改来缓解了此次事件。

我们是如何应对的?

  1. 运行Copilot代码审查的服务发生变更并开始逐步部署,审查结果停止显示在拉取请求中。该变更影响了所有环境。
  2. 审查开始超时,触发了Copilot代码审查团队的警报。我们宣布了此次事件。
  3. 我们将故障追溯到此次变更,并开始撤销该变更。
  4. 在撤销操作完成所有必要检查的同时,我们在GitHub状态页面上发布了此次事件。
  5. 撤销操作覆盖了所有受影响的区域。我们解决了此次事件,并建议客户重新请求受影响的审查。

我们如何减少类似事件的发生或降低其影响?

  • 我们通过在整个审查和交付流程中增加保护措施,来提高Copilot代码审查的可靠性。这些改进将有助于确保已完成的审查能够成功交付,允许失败的审查自动恢复,并在出现问题时提供更早的通知。
  • 我们还改进了监控和部署流程,以便更快地发现和解决问题。
  • * *

请关注我们的状态页面,获取状态变更和事件后总结的实时更新。想要了解我们正在推进的工作,请查看GitHub博客上的工程板块。

作者

图片3:Jakub Oleksy
图片3:Jakub Oleksy

探索更多GitHub内容

图片4:文档
图片4:文档

文档

一站式掌握GitHub所需的一切。

前往文档

图片5:GitHub
图片5:GitHub

GitHub

在GitHub上构建未来,这里是任何人都能从任何地方构建任何事物的地方。

立即开始构建

图片6:客户案例
图片6:客户案例

客户案例

了解使用GitHub构建产品的公司和工程团队。

了解更多

图片7:GitHub Universe 2026
图片7:GitHub Universe 2026

GitHub Universe 2026

10月28日至29日,加入我们在旧金山或在线举办的GitHub Universe,这是我们的旗舰开发者大会,汇聚了人们、代理和全球代码。

立即注册