GitHub 频繁宕机的原因:MySQL 负载过重

1,787

在最近的几周内,GitHub频繁发生宕机。3月23日,GitHub 公布宕机原因,由于 mysql1 集群的资源争夺,导致在负载高峰期间影响了 GitHub 的大量服务和功能性能。

GitHub 宕机情况:

  • 3 月 16 日 14:09 UTC(持续 5 小时 36 分钟)
  • 3 月 17 日 13:46 UTC(持续 2 小时 28 分钟)
  • 3 月 22 日 15:53 UTC(持续 2 小时 53 分钟)
  • 3 月 23 日 14:49 UTC(持续 2 小时 51 分钟)

事实上,在过去的几年,GitHub一直在针对数据库做优化,例如添加集群以支持平台的增长、对主数据库进行分区等等。但这些改进并没有从根本上解决问题,因此为了防止此类事件再发生,GitHub又做了新的举措。

目前GitHub 已经在高峰时段开始审计特定数据库的负载模式,并根据审计结果进行一系列性能修复。同时,GitHub也将部分流量转移到其它数据库,减少负载并加速故障的排除时间,审查变更管理程序,尤其是与生产中高负载期间相关的监控和变更。

未来,GitHub将会扩展基础设施,例如对数据库进行分片和扩展硬件。