top
显示高峰时段的平均CPU使用率约为20%,而CloudWatch监视显示的平均CPU使用率为40%。是什么原因导致这种差异?
top
显示高峰时段的平均CPU使用率约为20%,而CloudWatch监视显示的平均CPU使用率为40%。是什么原因导致这种差异?
Answers:
一个很好的观察,我们也遇到了这个问题。这是我发现的:
小心从EC2实例中测量CPU使用率。可能会看到CPU使用率远低于100%,但仍被完全用尽。相信我:去过那里,做到了。(顺便说一下,CloudWatch CPUUtilization是从实例外部测量的,并且始终是正确的。)
这里对整个事情都有很好的描述:https : //axibase.com/news/ec2-monitoring-the-case-of-stolen-cpu/
在上面的示例中,为m1.small EC2实例分配了0.4个处理器单元,因此40%的CPU繁忙意味着基础内核的使用百分比。但是,由于40%是可以分配给该VM的最大CPU份额,因此有效CPU使用率为40%/ 40%= 100%。这是CloudWatch显示的数字。
如果您想知道40%来自何处,那么数学很简单。m1.small linux系统拥有1个EC2计算单元,可提供1.0–1.2 GHz 2007 Opteron或2007 Xeon处理器的等效CPU容量。由于VM在时钟频率为2.6 GHz的计算机上运行,因此有权在该特定XEN节点上获得38.4%到46.2%的处理器份额。您可以运行cat / proc / cpuinfo命令来查找EC2实例背后的CPU体系结构。
请特别注意有关如何处理不知道特殊数学运算的工具的提示:
可以用于改造不与CloudWatch集成的现有基于代理或基于SNMP的监视工具的另一种选择是使用CPU空闲指标。您需要做的就是重新编写规则以测量CPU空闲而不是CPU繁忙。例如,如果您为CPU繁忙定义了> 75%的阈值,请为CPU空闲创建<25%的规则。如果CPU空闲为0,则您的服务器绑定了CPU。
很简单。非常好。
当您在EC2实例中运行最高时,它正在测量运行您的实例和其他实例的物理核心计算机的CPU使用率。如果您想单独测量实例(分配给您实例的EC2计算单元)的cpu使用率,则此用法不正确。
这就是为什么cloudwatch指标是真实的,因为它是在实例外部为单独分配给您的实例的EC2计算单元测量的。
看到这里-https://forums.aws.amazon.com/thread.jspa?threadID=99993