运行 top 命令时了解%CPU

运行 top 命令时了解%CPU

我试图理解%CPU跑步时意味着什么top

%CPU的申请大部分时间都在“400”或“500”。

有谁知道这意味着什么?

19080 大卫 20 0 27.9g 24g 12m S 400 19.7 382:31.81 paper_client

lscpu给我这个输出:

Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                32
On-line CPU(s) list:   0-31
Thread(s) per core:    2
Core(s) per socket:    8
Socket(s):             2
NUMA node(s):          2
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 45
Stepping:              7
CPU MHz:               2599.928
BogoMIPS:              5199.94
Virtualization:        VT-x
L1d cache:             32K
L1i cache:             32K
L2 cache:              256K
L3 cache:              20480K
NUMA node0 CPU(s):     0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30
NUMA node1 CPU(s):     1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31

答案1

%中央处理器 -- CPU 使用率:进程正在使用的 CPU 百分比。默认情况下,top将此显示为单个 CPU 的百分比。在多核系统上,百分比可以大于 100%。例如,如果 3 个核心的使用率为 60%, top则将显示 CPU 使用率为 180%。看这里了解更多信息。 您可以通过在运行Shifti时点击来切换此行为top,以显示正在使用的可用 CPU 的总体百分比。

以上引述来源

你可以用htop它代替。


要回答有关您有多少个核心和虚拟核心的问题:

根据你的lscpu输出:

  • CPU(s)您总共有 32 个核心 ( )。
  • 您有 2 个物理插槽 ( Socket(s)),每个插槽包含 1 个物理处理器。
  • 您的每个处理器Core(s) per socket内部都有 8 个物理核心 ( ),这意味着您有 8 * 2 = 16 个真实核心。
  • 每个真实核心可以有 2 个线程 ( Thread(s) per core),这意味着总共有真实核心 * 线程 = 16 * 2 = 32 个核心。

因此,您有 16 个真实核心中的 32 个虚拟核心。

另请参阅,关联。

答案2

这意味着你有很多核心。最多 1 个核心为 100%。所以最高可以是number_of_cores × 100%.

您可能想看看为什么您的应用程序是 400%。

相关内容