为了测试我的AutoScaling组,我想模拟一个巨大的CPU使用率,以便创建一个新实例(基于我在Cloudwatch中配置的指标:平均CPU> = 60)
EC2实例是一个简单的t2.micro,我使用了压力命令:stress -c 1 -t 400s
我可以在顶部看到进程已经开始并且CPU使用率为100%,但问题是它不是恒定的。有时候它可以达到10%,有时高达100%,而在云观察监控中,即使经过5分钟的压力,CPU的平均使用率仍低于20%!
我试过其他论点(压力-c 2或压力-c 4)这是同样的事情。我也试过这个命令:yes> / dev / null&
Cloudwatch始终看不到100%的CPU使用率。
有什么问题 ?亚马逊是否有任何保护来限制CPU的巨大负载?
谢谢你的帮助。
Tx实例是“突发性能实例”,这意味着您无法始终获得100%的CPU。这是交换低小时价格的权衡。
CPU由资源信用管理。您的实例每分钟都会收到CPU积分。您的实例将消耗1个CPU信用,1分钟使用率为100%。这意味着当您的实例未被充分利用时,它会累积可以在以后消耗的CPU信用。当没有更多可用信用时,您的CPU将受到限制。
CPU信用和基准性能的数量取决于确切的实例类型。
详细信息如下:https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-credits-baseline-concepts.html
底线:不要在Tx实例类型上运行CPU基础压力测试。这些实例类型设计用于低/中等基线,偶尔会出现性能突发。
根据AWS,t2.micro
是一个可突发的性能实例。 documentation说:
T2实例是可突发性能实例,可提供基本级别的CPU性能,并能够突破基线。
一旦达到100%利用率,就有可能获得额外的CPU分配。另请注意,这些实例是虚拟的,因此无法始终依赖报告的vCPU利用率。
我建议你尝试一般用途M5
。通过此实例,您应该能够生成所需的行为。