无法模拟AWS EC2实例上的100%CPU使用率

问题描述 投票:2回答:2

为了测试我的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的巨大负载?

谢谢你的帮助。

amazon-web-services amazon-ec2 autoscaling stress-testing
2个回答
4
投票

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基础压力测试。这些实例类型设计用于低/中等基线,偶尔会出现性能突发。


1
投票

根据AWS,t2.micro是一个可突发的性能实例。 documentation说:

T2实例是可突发性能实例,可提供基本级别的CPU性能,并能够突破基线。

一旦达到100%利用率,就有可能获得额外的CPU分配。另请注意,这些实例是虚拟的,因此无法始终依赖报告的vCPU利用率。

我建议你尝试一般用途M5。通过此实例,您应该能够生成所需的行为。

© www.soinside.com 2019 - 2024. All rights reserved.