在下面的屏幕截图中,报告称总体 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
答案1
57.6% 意味着 mysqld 占用了 0.576 个 CPU。这种差异可能是由于系统整体数据收集和每个进程数据收集之间存在竞争条件。
编辑:根据您的更新,看起来您有 16 个核心。
57.5% => .575/16 = .036 = 3.6%.
这就是你的 3% 的由来。
如果将所有空闲百分比相加并从 1600% 中减去,结果也约为 57.5%。
答案2
您能否尝试在 top 运行时按数字 1 并看看会发生什么。
编辑:
未知先生说得好。
top 表示“如果您有一个 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% 这个数字的由来……
答案3
有谁推荐过htop
htop
? 这并不意味着它对这个特定问题的帮助会比以前的答案更大,但每当我看到有人仍在使用时,我都有义务提及top
!
答案4
us:用户空间 - 在内核上运行的程序 sy:系统调用 - 内核内部运行的程序 ni:重新优化的进程 id:空闲 wa:等待 i/o hi:硬件中断 - 处理硬件中断所花费的时间 si:软件中断 - 处理软件创建的中断(系统调用等)所花费的时间