我有一台机器,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 系统上的工作方式。
top正如您所描述的那样,默认情况下最常在“Irix”模式下工作。如果您想获得 CPU 总容量的百分比(即当可能的 CPU 使用率总和为 100% 而不是 cpu_cores_number * 100% 时),只需按 切换“Irix”模式I。