为什么在 AWS 上启动大量 T2 实例后启动时间和工作负载性能会下降?

为什么在 AWS 上启动大量 T2 实例后启动时间和工作负载性能会下降?

我在 AWS 上运行了一组 T2 实例,每个实例的平均使用寿命为 5 分钟。我启动一个实例,执行一些工作负载,然后终止它。我在 GP2 卷上使用自己的 AMI。

在启动了大约 150 个实例后,我注意到启动时间和工作负载性能都显著下降。通常情况下,实例启动后 SSH 服务器会在 30-40 秒内可用,但现在需要大约 120 秒。此外,工作负载也慢了三倍。

我怀疑该问题可能与 CPU 或 I/O 信用积累有关,但我不确定如何验证这一点或哪些其他因素可能导致该问题。

随时间变化的 CPU 信用利用率

此屏幕截图显示了 AWS 上每个实例的 CPU 积分使用情况图表。该图表显示了一组 T2 实例随时间变化的 CPU 积分。图表上的每条线代表一个不同的实例,x 轴显示自启动实例以来经过的时间,y 轴表示 CPU 积分余额。从图表中可以看出,较新的实例从一开始就有 0 CPU 积分,并随着时间的推移累积积分。

有人可以洞察导致性能下降的原因并建议潜在的解决方案或优化以提高我的 T2 实例的性能吗?

AWS 账户是否可以拥有适用于账户内启动的所有 T2 实例的全局 CPU 信用余额,而不是针对每个单独的实例单独进行平衡?

预先感谢您的帮助。

答案1

看来我们可能遇到了 AWS 帐户可以为 T2 标准实例接收的启动积分数量限制。根据 AWS 文档,限制为100次发射或同时启动所有 T2 标准实例每个帐户每个区域每连续 24 小时期间。如果我们在给定的 24 小时内启动或开始超过 100 个 T2 标准实例,我们可能无法收到所有实例的启动积分。

文档的“隐藏”部分

还值得注意的是,较新的 AWS 账户可能会根据其使用年限而具有较低或较高的限制,该限制会随着时间的推移根据使用情况而增加。这可以解释为什么我们在启动大约 150 个实例后会遇到性能下降的情况。

相关内容