AWS EC2高CPU警报响起

时间:2012-07-28 17:45:13

标签: amazon-ec2 amazon-web-services cpu-usage

我有一个运行Windows 2008 R2的微EC2实例。我最近收到了很多高CPU警报,当我登录AWS管理控制台时,我发现我的CPU几乎与100%挂钩。但是,如果我登录到实例并启动任务管理器,我的CPU看起来几乎是空闲的。我已经离开任务管理器一段时间,并使用此屏幕截图显示AWS报告与我的实例看起来正在做什么之间的差异。建议?

CPU Usage Graphhttps://s3.amazonaws.com/caskerdbbucket/public/cpu.png

PS:任务管理器的更新速度设置为“低”

2 个答案:

答案 0 :(得分:35)

操作系统公开的数据在Amazon EC2等虚拟化环境中通常不足或误导,报告的百分比取决于您的实例类型和底层处理器核心利用率(通常与虚拟化硬件不匹配)除了其他事项之外,您所看到的内容很可能是由于当前大多数相关的Unix / Linux监控工具中公开的 CPU窃取时间造成的(但不是在Windows上,不幸的是,请参阅我的问题Is there a Windows equivalent of Unix 'CPU steal time'?以获取有关此问题的更多信息) - 请参阅例如{%}}或sar或<{1}}中的列%steal或st:

  

st - 偷窃时间
  从此虚拟机中“窃取”的CPU数量   由管理程序执行其他任务(例如运行另一个虚拟机)   机)。

博文EC2 monitoring: the case of stolen CPU提供了一个很好的探索和插图:

  

当top命令显示40%CPU忙时,但CloudWatch说   服务器的最大值是100% - 你选择哪一方?答案是   简单(CloudWatch是正确的,顶部不是)[...]

CPU窃取时间对于您正在使用的EC2实例类型t1.micro特别普遍,它可能会被定义严重限制(通常约为97%的窃取时间!),请参阅{{3} }对于概念的广泛解释和说明 - 特别是Micro Instances部分:

  

我们希望您的应用程序只消耗一定量的CPU   一段时间内的资源。如果应用程序消耗超过   你的实例分配的CPU资源,我们暂时限制了   实例,因此它在低CPU级别运行。如果您的实例继续   要使用其所有分配的资源,其性能将降低。我们   将增加我们限制其CPU级别的时间,从而增加   允许实例再次爆发之前的时间。 [强调我的]

因此,您可能已经超出了微实例的可持续CPU使用情况配置文件,并且需要调整工作负载或切换到其他实例类型。

答案 1 :(得分:2)

我遇到了同样的问题,花了很多时间才找到解决方案。 在互联网上,我没有找到我的案例,所以我分享。

我在事件列表中发现了许多欺诈性登录尝试。在那种情况下,任务管理器报告了30-40%的CPU使用率(Cloud Watch 100%),并且在进程列表中可以看到一些winlogon.exe。 更改远程桌面端口(默认为3389)后,我没有更多问题。 现在,Cloud Watch中的CPU使用率通常为34-35%。

希望这有帮助。