为什么top会报错误的CPU使用率?

11 linux cpu top

我有一台机器,Intel(R) Xeon(R) CPU E5520可见 16 个逻辑核心(8 个带 HT)。如果我运行一些消耗 CPU 时间(单线程)的东西,top 会正确报告进程的 100% CPU 使用率,但总使用率只有 3-4% 左右。

Cpu(s):  3.6%us,  0.0%sy,  0.0%ni, 96.4%id,  0.0%wa,  0.0%hi,  0.0%si,  0.1%st

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 1567 www       20   0 65632   84    4 R  100  0.0   0:05.96 burnMMX
Run Code Online (Sandbox Code Playgroud)

当然,报告的使用率应该是 ~6.25%(16 个内核中的 1 个)。

  • 因为它是虚拟机所以不正确吗?
  • 我怎样才能计算出正确的值?

Pat*_*aba 12

top在摘要中报告了与所有内核相加的 CPU 的使用情况。另一方面,当您查看进程列表时,top 报告引用一个核心(真实或 HT)的百分比。尝试运行一个具有 4 个线程的进程,该进程可以占用 4 个 CPU 内核,您会发现它使用了 400% 的 CPU。

我不知道为什么,但这就是top我见过的所有 Linux 系统上的工作方式。


moo*_*ick 5

top正如您所描述的那样,默认情况下最常在“Irix”模式下工作。如果您想获得 CPU 总容量的百分比(即当可能的 CPU 使用率总和为 100% 而不是 cpu_cores_number * 100% 时),只需按 切换“Irix”模式I