Slack分析了1月4日发生的事情,当时https://www.zdnet.com/article/slack-output-lands-on-first-working-day-of-2021年/“>服务下降了试图承载2021年第一个工作日对许多人来说是一个负担。
“在美洲的早晨,我们接到了一个外部监控服务的呼叫:错误率正在攀升。我们开始调查。由于最初的分类显示错误越来越严重,我们开始了事故处理过程https://slack.engineering/slacks-output-on-一月四日-2021/“target=”\u blank“rel=”noopener noreferrer nofollow“data component=”externalLink“>在公司开始调查时发布,它的仪表板和警报服务变得不可用。Slack表示,它必须回归到更具历史意义的发现错误的方法,因为值得庆幸的是,它的度量后端仍在运行。
它还回滚了当天推出的一些更改,但很快发现这并不是导致停机的原因。
“虽然我们的基础设施似乎总体上处于运行状态,但我们观察到以下迹象:我们看到了广泛的网络退化,我们将其升级到我们的主要云提供商AWS,”它解释道。
Slack在太平洋标准时间早上6点57分仍在运行,99%的消息发送成功,而它通常的发送速率为99.999%。该公司表示,通常情况下,它的流量模式是在每小时半的最高峰出现一个小高峰,作为提醒和其他类型的自动触发和发送信息。它说,它有标准的缩放程序来管理这些峰值。
“然而,太平洋标准时间早上7点的小高峰——再加上潜在的网络问题——导致我们的网络层饱和,”Slack说随着负载的增加,广泛的数据包丢失也随之增加。数据包丢失的增加导致从web层到其后端的调用延迟更高,从而使web层中的系统资源饱和。
“Slack变得不可用。”
Slack的一些实例由于无法访问它们所依赖的后端而被标记为不正常,因此,其系统尝试用新实例替换不正常的实例。同时,Slack的自动缩放系统缩小了web层的规模。
这也启动了几位已经在调查的工程师。
“我们根据两个信号扩展我们的web层。一个是CPU利用率…另一个是可用Apache工作线程的利用率。Slack解释说:“PST早上7点之前的网络问题意味着线程要花费更多的时间等待,这导致CPU利用率下降。”。
“CPU利用率的下降最初触发了一些自动缩小规模。然而,由于网络状况恶化,线程利用率增加,网络层等待后端响应的时间也更长,因此很快出现了显著的自动升级。“Slack说,它试图在太平洋标准时间上午7点01分至上午7点15分之间向其网络层添加1200台服务器。”,我们的扩展并没有按预期进行,“它说,”在次优的网络条件下同时提供这么多实例带来的负载高峰意味着提供服务遇到了两个不同的资源瓶颈(最重要的一个是Linux开放文件限制,但我们也超过了AWS的配额限制)。“
Slack表示,在修复供应服务时,它的web层的容量仍然不足,因为扩展没有按预期进行。已经创建了大量实例,但其中大多数没有完全配置,也没有提供服务。大量断开的实例导致Slack也达到了其预先配置的自动缩放组大小限制,这决定了其web层中实例的最大数量。
“这些大小限制是我们正常情况下为高峰流量服务所需的实例数量的倍数,”报告指出,随着中断的实例正在清理,对连接问题的调查正在进行,监控仪表板仍处于关闭状态。
供应服务在太平洋标准时间上午8点15分恢复联机。
“我们看到,随着健康实例进入服务,情况有所改善。我们仍然有一些不太关键的生产问题,这些问题已经得到缓解或正在解决,而且我们的网络中的数据包丢失仍然在增加。
但是,它的web层有足够数量的正常运行的主机来服务流量,但是它的负载平衡层仍然显示出由于网络问题导致的web应用程序实例的运行状况检查失败率极高。负载平衡器的“紧急模式”功能启动,未通过健康检查的实例得到了平衡。
“这加上重试和电路中断,使我们恢复了服务,”它说。
到太平洋标准时间上午9点15分左右,Slack被“降级,而不是关闭”。
“到松弛恢复的时候,AWS的工程师们已经找到了引发我们问题的导火索:我们的部分AWS网络基础设施确实已经饱和,正在丢弃数据包,”它说。
“1月4日,我们的一个(AWS)中转网关过载。TGWs由AWS管理,旨在对我们透明地进行扩展。然而,Slack的年度流量模式有点不寻常:假期流量较低,因为每个人都与工作脱节(在工作与生活的平衡上做得好,Slack用户!)。
“在返回的第一个星期一,客户机缓存很冷,客户机在第一次连接到Slack时拉下的数据比平时多。我们从一年中最安静的时刻变成了一天中最大的一天,简直就是一夜之间。”
斯莱克说,它自己的服务系统扩展得很快,满足了这样的需求高峰,但它的TGWs扩展得不够快。
“在事件发生期间,AWS工程师通过他们自己的内部监控来提醒我们的数据包丢失,并手动增加我们的TGW容量。由10: 美国太平洋标准时间上午40点,所有可用区域都出现了变化,我们的网络恢复正常,错误率和延迟也恢复正常,”Slack说,它已经给自己设置了一个提醒,要求在下一个假期结束时提前升级TGW。
5月12日,松弛在大规模COVID-19相关的远程工作中下降了几个小时。