谷歌云故障 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}}人
人已打赏
个人中心
购物车
优惠劵
搜索