谷歌云故障 14 个小时:“队列突变大量积压”引起的

谷歌云为服务器添加了内存,重新启动服务器,眼睁睁看着情况变得更糟糕……所幸现在重新掌握了局面。
谷歌云故障 14 个小时:“队列突变大量积压”引起的插图
发生在3月26日的那次故障导致谷歌在多个地区的云服务瘫痪,包括Dataflow、Big Query、DialogFlow、Kubernetes Engine、Cloud Firestore、App Engine和Cloud Console。这些系统受影响的时间总共长达14个小时。
许多云服务依赖身份和访问管理(IAM)中的分布式访问控制列表(ACL)来验证权限、激活新的API或创建新的云资源。这些权限存储在一个分布式数据库中,被大量缓存起来。两个进程确保数据库内容最新:一个是实时进程,一个是批处理进程。然而,如果实时管道远远落在后面,提供的会是过时数据,这可能导致下游服务的操作受到影响。
据谷歌最近发布的一项内部调查显示,故障是该公司的缓存服务器内存不足导致的。调查称:“触发这起事件的诱因是批量更新组成员(group membership ),结果修改后权限的数量增加到了超出预期的程度,因而生成了大量积压的队列突变(queued mutation)需要实时生效。”
“由于缓存服务器存在一个潜在的问题,处理积压的队列突变的能力下降,这导致缓存服务器内存不足;而这反过来又导致对IAM的请求超时中断。为了缓解内存使用量高企而执行的紧急部署措施在各个地区更是短暂加剧了这个问题。”
谷歌通过在缓存服务器中安装更多的内存并重新启动服务器解决了该问题。但是到这个时候,已积累了一大堆过时的数据,这导致了进一步的问题,系统工程师不得不另花费几个小时来处理。第二天早上05点55分,系统恢复正常运行。
谷歌表示,为了应对这些问题,它“现在确保缓存服务器可以处理引发这起事件的那种批量更新”,并且“正在努力优化缓存服务器上的内存使用和保护机制,在无需重新启动的情况下面对紧急情况时可以进行配置变更。”
“为了让我们将来可以更迅速地应对数据过时问题,我们还将对数据库批处理进行切分处理,以便支持并行化和更频繁的运行。我们明白区域可靠性对我们的用户来说有何等重要,并为该事件表示歉意。”
故障报告链接:https://status.cloud.google.com/incident/zall/20003#20003014

给TA打赏
共{{data.count}}人
人已打赏
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
在线客服
主机帮
我们将24小时内回复。
2024-12-12 15:02:51
您好,有任何疑问请与我们联系!
您的工单我们已经收到,我们将会尽快跟您联系!
[QQ客服]
176363189
当幸福来敲门
[小黄]
17307799197
[企业邮箱]
sudu@yunjiasu.cc
取消

选择聊天工具: