/proc/cpuinfo 中的处理器数量

/proc/cpuinfo 中的处理器数量

当我学习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 频率以查看处理器是否处于睿频加速状态?

负载为 3.70 约 100%。但由于 IO 响应时间的原因,CPU 使用率并未达到 100%。这并不意味着 IO 设备将处于最大速度,但 io 设备将 100% 繁忙,这有时会影响使用 IO 的应用程序,例如:音乐可能会中断。

答案1

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

超线程意味着核心的某些部分是重复的。具有超线程的核心有时会呈现为两个“虚拟核心”的组合,这意味着并不是每个核心都是虚拟的,而是复数是虚拟的,因为这些核心实际上并不是独立的核心,它们有时必须等待另一个核心处于运行状态。利用共享部分。

就软件而言,只有一个概念几乎无处不在:并行执行线程的概念。所以在大多数软件手册中,这些术语中央处理器处理器用于表示执行程序代码的任何一件硬件。在硬件方面,这意味着一个核心,或一个具有超线程的虚拟核心。

因此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 个线程中。

答案2

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

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

siblings is 4您可以看到和的计数cpu cores is 2cpu cores2 是处理器中的核心总数,可以从您提供的英特尔 URL 中给出的规格中检查。类似的siblings还有intel的HTT提供的由线程数决定的。

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

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

涡轮增压怎么样?所有核心都是睿频加速还是仅物理核心?

好吧,我会说,所有活动核心都经过涡轮增压。嘿伙计,你应该看看我们亲爱的人的例子维基百科。也用计算来解释。

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

涡轮增压与否,您可以在输出中查看频率详细信息lscpu。对于精致的输出:-

lscpu | grep Hz

答案3

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

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

答案4

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

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

两项措施相互关联,但并不完全相同。

相关内容