AWS揭示了它通过超出操作系统的限制而突破自己,Sysadmins不熟悉一些解决方法

第一个解决方案:在更大的服务器上运行,以减少Kinesis舰队中的喋喋不休


亚马逊网络服务透露,向已复杂的系统添加容量是它的原因 美东-1 地区上周采取了意外且不愿意休息。

这个故事的简短版本是该公司的Kinesis服务,由客户直接用于AWS自己的操作的其他部分,增加了更多的容量。 Kinesis船队中的服务器需要相互通信,为前端舰队中的每一个其他服务器都为新的线程创建新的线程。 AWS表示,涉及“数以千计的服务器”,当添加新服务器时,它可能需要一个小时的时间来添加整个舰队。

因此,增加容量“导致车队中的所有服务器超过操作系统配置允许的最大线程数。”

在短期内,我们将移动到更大的服务器,减少服务器的总数,因此,线程。

AWS弄清楚了,但也了解到修复问题意味着重新启动所有Kinesis。

但只有可能会一次带回“几百”服务器,并且随着我们在Kinesis上面使用“数千个服务器”。这解释了为什么从中断恢复缓慢。

整个悲伤的故事都在这个AWS中更详细地解释了 邮政据解释,这也解释了如何在将来避免此类事件。

计划一个:使用更大的服务器。

“在非常短的术语中,我们将转向较大的CPU和内存服务器,减少服务器的总数,从而减少每个服务器在舰队中进行通信的总线,”帖子说,解释了这样做的“意志”在使用的线程中提供显着的余量,因为每台服务器必须维护的总线程与舰队中的服务器数量成正比。“

该公司还计划新的“服务中的线程消耗令人震惊的服务”,并计划“我们的操作系统配置中的线程计数限制增加,我们相信每台服务器的线程会产生显着更多的线程,并为我们提供重要的额外安全保证金还有。“

同样在议程上:将像CloudWatch这样的需求服务隔离到分开专用Kinesis服务器。

仪表板通过依赖项破坏了

Tifu样帖也概述了为什么亚马逊的仪表板只提供有关事件的很少的信息 - 因为它们也取决于依赖Kinesis的服务。

AWS建立了一种依赖性Lite方法,可以将其用作公共状态页面的服务健康仪表板。帖子说它正如预期的那样工作,但“我们在活动的早期部分遇到了几个延迟......因为它是我们支持运营商的更多手工和更熟悉的工具。”

因此,云使用个人健康仪表板,只能对客户进行影响。

帖子以道歉为止:“虽然我们为亚马逊kinesis提供了我们的长期记录,但我们知道这项服务的重要程度,以及受影响的其他AWS服务是我们的客户,他们的应用程序和最终用户,及其业务。“

“我们将尽一切努力从此活动中学习,并使用它来提高我们的可用性。” ®


咬住它的手©1998-2021