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


10

我有一台具有Intel(R) Xeon(R) CPU E5520可见16个逻辑核心的计算机(其中8个具有HT)。如果我花时间吃CPU时间(单线程),则top正确地报告该进程的CPU使用率为100%,但总使用率仅为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

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

  • 因为是虚拟机,这不正确吗?
  • 如何计算正确的值?
linux  cpu  top 

1
您可以尝试atop更改顶部以单独报告每个CPU的使用情况(按1
Hubert Kario 2012年

@HubertKario报告的每个内核使用情况都是正确的,那么为什么总错误呢?

如果各个内核的使用水平正确,那么这将表明它听起来似乎不太可能是顶部的错误……
Hubert Kario 2012年

这不会是有关虚拟机中错误的顶部结果的第一篇文章。您能否描述您的VM技术以及主机和来宾操作系统?
尼尔斯

@Nils Xen与Ubuntu / 2.6.32-21服务器来宾。没有有关主机操作系统的信息。

Answers:


12

top摘要中的“报告”报告了相对于所有内核加起来的CPU的使用情况。另一方面,当您查看进程列表时,最热门的报告所引用的百分比涉及一个核心(实际或HT)。尝试运行具有4个线程的进程,该进程可能会耗尽4个CPU内核,您会发现使用400%CPU。

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


5

top正如您所描述的,大多数情况下默认情况下通常都在“虹膜”模式下工作。如果要获取总CPU功能的百分比(即,当可能的CPU使用量之和总计为100%而不是cpu_cores_number * 100%时),只需按即可切换“ Irix”模式I

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.