博客
返回博客文章
2015 年 8 月 13 日
8 月 10 日发生的连接问题的事后分析
大卫·拉德克利夫撰写
8 月 10 日,从协调世界时 7:08 左右到 10:40,以及从协调世界时 19:03 到 19:19,RubyGems.org 多次出现间歇性连接问题。这主要中断宝石下载,并可能导致宝石推送也出现间歇性错误。本文旨在说明这个问题,以及我们如何努力防止将来出现类似问题。
所有宝石都存储在 Amazon 的简单存储服务中,也称为 S3。8 月 10 日,AWS 的弗吉尼亚区域发生大规模中断,影响数项服务,包括 S3。获取宝石文件(和 gemspecs)的 S3 请求和将新的宝石/gemspecs 保存到 S3 的请求间歇性失败。我们的监控显示,在此期间,大约 4% 的下载请求失败。
所有宝石下载都通过我们的 CDN 合作伙伴 Fastly 进行,在全球各地靠近您的位置中缓存宝石。缓存确实节省了我们,因为约有 88% 的请求被缓存,根本不需要访问 S3。这意味着在此期间,所有请求中有 8% 在 S3 中成功命中。
话虽如此,将我们所有的文件存储在一个区域中仍然不是理想的。我们计划开始将我们所有文件复制到第二个区域。这将为灾难恢复提供备份,希望如果主区域出现故障,我们还可以从第二个区域提供下载请求。
对于我们在本周处理请求遇到问题,我深感抱歉,而且我们正在做出一些更改以改善这种情况。