被Unix'top'命令中的CPU值混淆


11

在下面的屏幕截图中,报告的总体CPU为3%,但是mysqld进程报告为使用57%。这是全部3%的57%,因此mysqld仅使用大约1.5%的CPU吗?

顶部屏幕截图http://img.skitch.com/20090620-cih33piwnnrke6aw41y9p1phwr.jpg

更新:下面的评论者要求我按“ 1”键并发布结果: 1键http://img.skitch.com/20090620-gayja43s44qtw2wkw4aq642e8c.jpg

Answers:


11

57.6%表示mysqld使用的是.576的cpu。差异可能是整个系统的数据收集与按进程收集数据之间的竞争条件。

编辑:根据您的更新看起来您有16个核心。

57.5% => .575/16 = .036 = 3.6%.

这就是您3%的来源。

如果将所有闲置百分比相加并从1600%中减去,那也将达到约57.5%。


3

您能尝试在top运行时按数字1看看会发生什么吗?

编辑:

未知先生说得很好。

上面说的是:“如果您有一个CPU内核,那将是57.5%的繁忙时间。”

但是您有16个核心。因此,这57个数字分布在各处,其中mysqld是多线程的,并且所有内容都...

有点令人困惑。但是我认为这是因为top会更难显示每个内核的信息...想象一个具有16个或更多内核的top信息行!

另外,如果您总计所有“%us” CPU时间

1.7+1.0+2.3+1.0+7.4+11.1+15.1+8.7 = 48.3
48.3/16 = 3.01875

这是3%的数字来自...


完成 看到更新的问题。
铁氟龙泰德

1

有没有人推荐htop?并不是说它比以前的答案已经对解决这个特定问题有更多帮助,但是只要htop我看到有人还在使用,我就不得不提一下top


0

我不能说您的最高层是否正在合并您拥有的任何多个CPU,但这仍然没有多大意义。

可能发生的情况是top不能同时获得每个进程的值和CPU总使用率。在读取过程信息和读取全局信息之间,有少量时间mysql可能已停止或开始使用大量CPU。这很可能只是一个简单的比赛条件。

当然,这本来应该已经发生了足够长的时间,让您注意到了,所以我猜测这可能只是顶部或内核记帐中的一个奇怪的错误。


0

我们:用户空间-您在内核上方运行的系统sy:系统调用-内核内部运行的系统ni:已注册的进程ID:空闲wa:等待i / o嗨:硬件中断-处理硬件花费了多少时间si:软件中断-处理软件创建的中断(系统调用等)要花费多少时间

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.