/ proc / cpuinfo中的处理器数量


26

在学习cpu负载时,我知道它取决于内核数。如果我有2个核心,那么负载2将提供100%的CPU使用率。

所以,我试图找出核心。(我已经知道该系统有2个内核,4个线程使2个虚拟内核点击以下链接处理器)。所以,我跑cat /proc/cpuinfo 这给了我

processor   : 0
vendor_id   : GenuineIntel
cpu family  : 6
model       : 69
model name  : Intel(R) Core(TM) i7-4500U CPU @ 1.80GHz
stepping    : 1
microcode   : 0x17
cpu MHz     : 774.000
cache size  : 4096 KB
physical id : 0
siblings    : 4
core id     : 0
cpu cores   : 2
apicid      : 0
initial apicid  : 0
fpu     : yes
fpu_exception   : yes
cpuid level : 13
wp      : yes
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 fma cx16 xtpr pdcm pcid sse4_1 sse4_2 movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm ida arat epb xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid
bogomips    : 3591.40
clflush size    : 64
cache_alignment : 64
address sizes   : 39 bits physical, 48 bits virtual
power management:

processor   : 1
vendor_id   : GenuineIntel
cpu family  : 6
model       : 69
model name  : Intel(R) Core(TM) i7-4500U CPU @ 1.80GHz
stepping    : 1
microcode   : 0x17
cpu MHz     : 1600.000
cache size  : 4096 KB
physical id : 0
siblings    : 4
core id     : 0
cpu cores   : 2
apicid      : 1
initial apicid  : 1
fpu     : yes
fpu_exception   : yes
cpuid level : 13
wp      : yes
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 fma cx16 xtpr pdcm pcid sse4_1 sse4_2 movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm ida arat epb xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid
bogomips    : 3591.40
clflush size    : 64
cache_alignment : 64
address sizes   : 39 bits physical, 48 bits virtual
power management:

processor   : 2
vendor_id   : GenuineIntel
cpu family  : 6
model       : 69
model name  : Intel(R) Core(TM) i7-4500U CPU @ 1.80GHz
stepping    : 1
microcode   : 0x17
cpu MHz     : 800.000
cache size  : 4096 KB
physical id : 0
siblings    : 4
core id     : 1
cpu cores   : 2
apicid      : 2
initial apicid  : 2
fpu     : yes
fpu_exception   : yes
cpuid level : 13
wp      : yes
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 fma cx16 xtpr pdcm pcid sse4_1 sse4_2 movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm ida arat epb xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid
bogomips    : 3591.40
clflush size    : 64
cache_alignment : 64
address sizes   : 39 bits physical, 48 bits virtual
power management:

processor   : 3
vendor_id   : GenuineIntel
cpu family  : 6
model       : 69
model name  : Intel(R) Core(TM) i7-4500U CPU @ 1.80GHz
stepping    : 1
microcode   : 0x17
cpu MHz     : 774.000
cache size  : 4096 KB
physical id : 0
siblings    : 4
core id     : 1
cpu cores   : 2
apicid      : 3
initial apicid  : 3
fpu     : yes
fpu_exception   : yes
cpuid level : 13
wp      : yes
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 fma cx16 xtpr pdcm pcid sse4_1 sse4_2 movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm ida arat epb xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid
bogomips    : 3591.40
clflush size    : 64
cache_alignment : 64
address sizes   : 39 bits physical, 48 bits virtual
power management:

现在我完全感到困惑。它显示了4个处理器和2个cpu内核。谁能解释这个输出?

一旦我的cpu负载为3.70,这是最大负载吗?当时还是cpu低于50%。

涡轮增压怎么样?所有内核都是涡轮增压还是仅物理?

Ubuntu中有什么方法可以获取当前的cpu频率,以查看处理器是否处于Turbo Boost状态?

负载约为3.70的100%。但是由于IO响应时间,CPU使用率并不是100%。这并不意味着IO设备将以最大速度运行,而是IO设备将处于100%繁忙状态,这有时会影响使用IO ex的应用程序:音乐可能会中断。


2
超线程就是为什么你看到4而不是2
derobert

1
说明文件和cpuinfo都告诉您您有两个cpu核心。处理器0和1在核心0上,而处理器2和3在核心1上(看那行core id)。这样physical id就给你筹码(我猜)。在这里,所有处理器均为0,因此只有一个芯片。
lgeorget 2014年

那么,什么是处理器负载达到100%... 2或4?
Madhurendra Sachan 2014年

什么是处理器?
Madhurendra Sachan 2014年

请注意,英特尔对线程的定义(“线程或执行线程是可通过单个CPU内核传递或处理的指令的基本有序序列的软件术语”)可能会使人认为使用2个内核和4个线程(如规格中所述),正在运行2x4 = 8个线程。实际上,您总共有4个线程,而两个内核看起来像是4。英特尔®超线程技术的定义更加清晰:“ 每个物理内核提供两个处理线程 ”,并更好地解释了您的系统可以看到4个处理器/兄弟。 2个cpu内核安装了一个芯片
XavierStuvw

Answers:


35

“ CPU”,“处理器”和“核心”这两个词的使用有些混乱。它们指的是处理器体系结构。内核是实现通用处理器的最小的独立单元。处理器是内核的集合(在某些ARM系统上,处理器是群集的集合,而群集本身就是内核的集合)。一个芯片可以包含一个或多个处理器(在这个词处理器的意义上,x86芯片包含一个处理器)。

超线程意味着核心的某些部分是重复的。带有超线程的内核有时被表示为两个“虚拟内核”的组合-意味着不是每个内核都是虚拟的,而是复数是虚拟的,因为它们实际上不是独立的内核,有时它们需要等待另一个内核利用共享部分。

就软件而言,只有一个几乎在所有地方都有用的概念:并行执行线程的概念。因此,在大多数软件手册中,术语“ CPU”和“ 处理器”用于表示执行程序代码的任何一种硬件。用硬件来讲,这意味着一个内核或一个具有超线程的虚拟内核。

这样就top显示了4个CPU,因为您可以同时执行4个线程。/proc/cpuinfo有4个条目,每个CPU一个条目(在这种情况下)。的processor号码(这是数量的条目中)分别对应于这4个线程。cpuNUMBER/sys/devices/system/cpu

/proc/cpuinfo 是获得有关哪些硬件实现这些执行线程的信息的少数地方之一:

physical id : 0
siblings    : 4
core id     : 0
cpu cores   : 2

表示这cpu0是0号物理组件(处理器)内部的4个线程之一,并且在此处理器2个线程中的0个核心中。


很好的解释,您还留下了3个问题Once my cpu load was 3.70, Is this maximum load? Still at that time cpu was at <50%.What about turbo boost ? Are all cores are turbo boosted or only physical ?How to check frequency.
Madhurendra Sachan 2014年

@MADTerry哪个程序报告“ CPU负载为3.70”,确切来说是什么?您是指平均负载吗?您所说的“ CPU低于50%”是什么意思?关于Turbo Boost,我对此并不熟悉,但我不明白为什么它们不会全部被增强。除非您在虚拟机中运行,否则所有核心都是物理的:正如我在回答中解释的那样,在“虚拟核心”中,不是虚拟的核心,而是它们的分离。
吉尔(Gilles)'所以

平均负载。uptime.by cpu的意思是cpu的用法。我理解原因。但是,如何检查频率或检查cpu是否加速?
Madhurendra Sachan 2014年

我还要指出,就高级软件而言,您对流程非常感兴趣(请参阅参考资料topuptime)。哪个硬件单元处理流程最终取决于底层软件(编译,操作系统)。cpuinfo报告抽象出了这样一个事实,即每个物理处理器(芯片上几个cpu之一)可以通过多线程等技术专长来扩展其计算能力。它将可以一次处理一个进程的“任何事物”视为处理器。在cpuinfo的会计眼中,设备功能确实导致“处理器”的总数
XavierStuvw

13

只需回答您的第一个问题。在输出中,cat /proc/cpuinfo您可以看到以下信息:

physical id : 0
siblings    : 4
core id     : 0
cpu cores   : 2

你可以看到的计数siblings is 4cpu cores is 2cpu cores为2表示处理器中的内核总数,可以根据您提供的intel URL中给出的规范进行检查。同样siblings,这是由英特尔的HTT提供的线程数确定的。

同样,对于物理ID,它0表示只有一个处理器芯片;对于内核ID,您可以看到0 and 1处理器中有2个内核。

更新:添加其他问题的答案。

涡轮增压怎么样?所有内核都是涡轮增压还是仅物理?

好吧,我要说的是,所有活动内核都是涡轮增压的。嗨,哥们,您应该已经阅读了我们心爱的Wikipedia的示例。也解释了计算。

Any method in ubuntu to get current cpu freq. if processor is on turbo boost or not.

是否使用Turbo Boost,您可以在输出中显示频率细节lscpu。为了获得更好的输出:

lscpu | grep Hz

简短而快速的答案,但您能解释其余3个吗?
Madhurendra Sachan 2014年

@MADTerry谢谢,但其他人我不清楚,我会做一些研究并编辑我的答案。同时,让我们看看是否有人弹出。
beginer

1
+1为lscpu命令。
阿尔达

8

您可以在终端中尝试以下操作:

sudo lscpu

这将使您大致了解您的cpu身体特征。至于是否进行涡轮增压,这纯粹是硬件,而不是操作系统本身,因此,除非英特尔拥有适用于Linux的特定驱动程序来调整您的处理器速度,否则没有可靠的理由来检查涡轮增压状态(除非有用于在其他论坛上查看有关您问题的任何线索)。

对于我来说,这就是我输入上述命令时得到的。我的AMD说它是四核,但是这里列出的我的物理核只有2个,每个核有2个线程(最多4个核)。我正在使用AMD A10 APU处理器5750m。

Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                4
On-line CPU(s) list:   0-3
Thread(s) per core:    2
Core(s) per socket:    2
Socket(s):             1
NUMA node(s):          1
Vendor ID:             AuthenticAMD
CPU family:            21
Model:                 19
Stepping:              1
CPU MHz:               2500.000
BogoMIPS:              4990.51
Virtualization:        AMD-V
L1d cache:             16K
L1i cache:             64K
L2 cache:              2048K
NUMA node0 CPU(s):     0-3

0

系统负载和cpu%是两种不同的衡量cpu功率使用方式的方法。

  • 系统负载:每个cpu处于“就绪”状态的进程数-一段时间平均。最高1 * cpu(在您的情况下,最高为4)系统被认为几乎处于闲置状态(与超市相比较,在超市中,每次结账平均只有一名顾客在等待)。您可能不会注意到任何延迟不超过2 * cpu(在您的情况下为8)。
  • cpu%:cpus通过运行一个进程执行实际工作的时间。就像收银员的观点,或者更确切地说是他们的主管的观点,他们希望他们一直忙。

两种措施都相关,但绝不相同。


我没有问不同。我已经在文章中阅读了。无论如何,您的答案与Gilles的答案相矛盾。
Madhurendra Sachan 2014年

您在哪里看到矛盾?
贡伯特2014年
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.