为什么ec2监控显示100% cpu而top只有20%?

Ric*_*kyA 10 top amazon-ec2

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

Ste*_*pel 18

topAmazon EC2等虚拟化环境中公开的数据通常不足或具有误导性,报告的百分比取决于您的实例类型和底层处理器核心利用率(这通常与您从管理程序提供的虚拟化硬件不匹配),其中其他事情 - 您所看到的很可能是由当今大多数相关 Unix/Linux 监控工具中暴露的各自CPU 窃取时间引起的- 参见例如列 %steal 或 st insartop

st -- 窃取时间
管理程序从该虚拟机“窃取”的 CPU 数量,用于其他任务(例如运行另一个虚拟机)。

博客文章EC2 监控:CPU 被盗案例提供了对这个主题的很好的探索和说明:

当 top 命令显示 40% CPU 繁忙但 CloudWatch 说服务器已达到 100% 时 — 您会选择哪一边?答案很简单(CloudWatch 是正确的,top 不是)[...]

请注意,此管理程序指标似乎只能(轻松)在 Unix/Linux 系统上访问,但在 Windows 上似乎无法观察到(尚),请参阅我的问题是否有 Windows 等效于 Unix“CPU 窃取时间”?有关此问题的更多信息。

  • 感谢您的博文。这真的很清楚。知道这一点真的很好,因为我即将推出 Ganglia,衡量错误的指标将是一种耻辱。测量 %idletime! (2认同)