`top` 给出的 CPU 百分比与进程 CPU 使用率总计之间的差异

`top` 给出的 CPU 百分比与进程 CPU 使用率总计之间的差异

我注意到,报告的总 CPU 使用率与和等应用程序给出的每个进程 CPU 使用率总和之间有时会存在(很大)top差异wmtop

举个例子:我最近git filter-branch --index-filter在一个相当大的仓库上运行了,使用 index-filter 命令git ls-files通过grep过滤器进入xargs git rm --cached。这需要几分钟才能运行;在运行过程中,我注意到和都wmtop显示top高(在我的 2 核机器上超过 50%)总 CPU 使用率,但都没有显示任何使用大量 CPU 时间的单个进程。

进程列表中是否未显示某些进程?这些进程是什么类型的进程?有没有办法找出它们使用了多少 CPU 时间?

答案1

tops您应该在问题中添加输出快照,以便我们能够准确地看到您所看到的内容。

处理器使用指标中最常见的差异是一些计算“I/O 等待”时间以及“实际 CPU 繁忙”时间。I/O 等待时间是指进程正在积极地做某事,因此可能已经使用了调度程序赋予它的所有时间片,但由于等待 I/O 操作完成而被阻止。

短时间运行的进程也会产生影响:如果有许多进程启动、执行一些小任务然后关闭,top 或类似程序可能根本看不到它们(特别是如果您不经常更新 top),因为它们执行完任务后会在更新之间停止。即使 top 采样时它们不存在(因此不会出现在任务列表中),文件系统中的总体计数/proc仍会显示自上次采样以来 CPU 在 X 个调度程序滴答中处于繁忙状态,在 Y 个调度程序滴答中处于空闲状态。

相关内容