ec2监控为什么显示100%cpu,最高只有20%?

我在ec2实例上运行一个python脚本,在另一个实例的数据库中插入行。 在ec2的监控中,我看到了100%的cpu利用率,而top只显示了python进程的20%。 顶部缺less什么? networking开销?

top公开的数据在虚拟化环境(如Amazon EC2 )中往往不够充分或是误导性,报告的百分比取决于您的实例types和底层处理器核心利用率(通常与虚拟机pipe理程序提供的虚拟化硬件不匹配)除其他外 – 你所看到的最有可能是由于现在大多数相关的Unix / Linux监控工具中暴露的相应的CPU窃取时间而引起的 – 例如,参见在sartop列% sar或st:

st – 偷窃时间
其他任务(例如运行其他虚拟机)时,虚拟机pipe理程序从该虚拟机中“盗取”的CPU数量。

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

当top命令显示CPU占用率达到40%时,CloudWatch认为服务器占用率达到了100% – 你select哪一边? 答案很简单(CloudWatch是正确的,最高的不是)[…]

请注意,这个pipe理程序指标看起来似乎只能在Unix / Linux系统上(很容易)访问,但在Windows上似乎还没有被观察到,请参阅我的问题是否存在与Unix“CPU窃取时间”相当的Windows? 为更多关于这个问题。

亚马逊可能检查负载和TOP没有使用百分比。 如果你在cpu上有两个进程,他们可以用20%,但你可以加载2。