我在 ec2 实例上运行 python 脚本,该脚本在另一个实例的数据库中插入行。在 ec2 的监控中,我看到 100% 的 cpu 利用率,而 top 仅显示 python 进程的 20%。顶部缺少什么?网络开销?
Ste*_*pel 18
top
在Amazon EC2等虚拟化环境中公开的数据通常不足或具有误导性,报告的百分比取决于您的实例类型和底层处理器核心利用率(这通常与您从管理程序提供的虚拟化硬件不匹配),其中其他事情 - 您所看到的很可能是由当今大多数相关 Unix/Linux 监控工具中暴露的各自CPU 窃取时间引起的- 参见例如列 %steal 或 st insar
或top
:
st -- 窃取时间
管理程序从该虚拟机“窃取”的 CPU 数量,用于其他任务(例如运行另一个虚拟机)。
博客文章EC2 监控:CPU 被盗案例提供了对这个主题的很好的探索和说明:
当 top 命令显示 40% CPU 繁忙但 CloudWatch 说服务器已达到 100% 时 — 您会选择哪一边?答案很简单(CloudWatch 是正确的,top 不是)[...]
请注意,此管理程序指标似乎只能(轻松)在 Unix/Linux 系统上访问,但在 Windows 上似乎无法观察到(尚),请参阅我的问题是否有 Windows 等效于 Unix“CPU 窃取时间”?有关此问题的更多信息。