/proc/cpuinfo 文件包含了有关系统CPU的详细信息。当你执行 cat /proc/cpuinfo 命令时,你会看到一系列关于CPU的配置信息。下面是几个重要的字段及其意义:
processor: 表示系统中逻辑处理器(核心)的编号,从0开始排序。每个逻辑处理器都有一个唯一的编号。
例如:processor : 0
vendor_id: 表示CPU制造商的ID。
例如:vendor_id : GenuineIntel 表示这是一个Intel制造的CPU。
cpu family: 表示CPU的产品系列代号。
例如:cpu family : 6 表示这是Intel的第6代CPU家族的一部分。
model: 表示CPU在其系列中的型号。
例如:model : 63 表示这是第63型号的CPU。
model name: 显示CPU的完整型号名称。
例如:model name : Intel(R) Core(TM) i7-4790 CPU @ 3.60GHz
stepping: 表示CPU的步进版本,通常用于识别微架构的修订版本。
例如:stepping : 2
microcode: 微码版本号。
例如:microcode : 0x1
cpu MHz: 当前CPU的运行频率(MHz)。
例如:cpu MHz : 3599.933
cache size: CPU缓存大小。
例如:cache size : 8192 KB
physical id: 表示CPU所在的物理插槽的ID。
例如:physical id : 0 表示这是第一个物理CPU。
core id: 表示CPU核心的ID。
例如:core id : 0 表示这是第一个核心。
cpu cores: 表示每个物理CPU有多少个核心。
例如:cpu cores : 4 表示每个物理CPU有4个核心。
siblings: 表示每个物理CPU有多少个线程(逻辑处理器)。
例如:siblings : 8 表示每个物理CPU有8个线程,这可能意味着存在超线程技术。
flags: 列出了CPU支持的特性标志。
例如: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 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 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid
一个简单的输出示例:
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 63
model name : Intel(R) Core(TM) i7-4790 CPU @ 3.60GHz
stepping : 2
microcode : 0x1
cpu MHz : 3599.933
cache size : 8192 KB
physical id : 0
siblings : 8
core id : 0
cpu cores : 4
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : ...
...
processor、physical id、siblings 和 cpu cores之间的关系
processor、physical id、siblings 和 cpu cores 这四个字段在 /proc/cpuinfo 中提供了关于系统CPU配置的重要信息。
processor
- processor: 表示系统中逻辑处理器(即CPU核心或线程)的编号。每个逻辑处理器都有一个唯一的编号。
- 例如:processor : 0 表示第一个逻辑处理器。
physical id
- physical id: 表示CPU所在的物理插槽的ID。每个物理CPU都有一个唯一的 physical id。
- 例如:physical id : 0 表示这是第一个物理CPU。
cpu cores
- cpu cores: 表示每个物理CPU上的物理核心数量。物理核心是指实际存在于CPU硬件中的独立计算单元。
- 例如:cpu cores : 4 表示每个物理CPU上有4个物理核心。
siblings
- siblings: 表示每个物理CPU上的逻辑处理器数量。逻辑处理器可以理解为操作系统能够调度的处理器数量,包括由于
超线程技术而产生的虚拟核心。- 例如:siblings : 8 表示每个物理CPU上有8个逻辑处理器。
关系分析
-
逻辑处理器(processor)与物理CPU(physical id):
- 每个逻辑处理器都有一个 physical id,指明它属于哪个物理CPU。
- 逻辑处理器的数量等于所有物理CPU上的逻辑处理器数量之和。
-
物理CPU(physical id)与物理核心(cpu cores):
- 每个物理CPU有一个或多个物理核心。
- physical id 唯一标识了一个物理CPU,而 cpu cores 指出该物理CPU上有多少个物理核心。
-
物理核心(cpu cores)与逻辑处理器(siblings):
- siblings 表示每个物理CPU上的逻辑处理器数量。
- 如果没有启用超线程技术,siblings 和 cpu cores 的值相同。
- 如果启用了超线程技术,siblings 的值将是 cpu cores 的两倍。
示例分析
假设你有一台服务器,其 /proc/cpuinfo 文件中有以下信息:
processor : 0
physical id : 0
cpu cores : 4
siblings : 8
这表明:
1.该服务器有一个物理CPU(physical id : 0)。
2.每个物理CPU有4个物理核心(cpu cores : 4)。
3.启用了超线程技术,因此每个物理核心对应一个额外的逻辑核心,总共8个逻辑处理器(siblings : 8)。
查询命令
cat /proc/cpuinfo | grep 'processor' | wc -l
cat /proc/cpuinfo | grep 'physical id' | wc -l
cat /proc/cpuinfo | grep 'cpu cores'
cat /proc/cpuinfo | grep 'siblings'
总结:
processor 表示逻辑处理器的编号。 physical id 表示物理CPU的编号。 cpu cores 表示每个物理CPU上的物理核心数量。 siblings 表示每个物理CPU上的逻辑处理器数量,反映了物理核心加上任何由超线程技术提供的额外逻辑核心。