AWS EC2高CPU警报响起

Rya*_*key 21 amazon-ec2 cpu-usage amazon-web-services

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

CPU使用率图 (https://s3.amazonaws.com/caskerdbbucket/public/cpu.png)

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

Ste*_*pel 35

Amazon EC2等虚拟化环境中,操作系统公开的数据通常不足或误导,报告的百分比取决于您的实例类型和底层处理器核心利用率(通常与您提供的虚拟化硬件不匹配)管理程序),除了其他事项之外 - 你所看到的很可能是由于现在大多数相关的Unix/Linux监控工具所暴露的各自CPU窃取时间造成的(但不是在Windows上,不幸的是,请参阅我的问题是否有Windows等效的Unix' CPU窃取时间'?有关此问题的更多信息) - 请参阅例如列%steal或st in sartop:

st - Steal Time
虚拟机管理程序为其他任务(例如运行另一个虚拟机)从该虚拟机"窃取"的CPU数量.

博客文章EC2监控:被盗CPU的情况提供了一个很好的探索和插图这个主题:

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

CPU窃取时间对于您正在使用的EC2实例类型t1.micro特别普遍,它可能会被定义严重限制(通常约为97%的窃取时间!),请参阅Micro Instances以获得对该概念的广泛解释和说明 - 具体而言,部分当实例使用其分配的资源指出:

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

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