Linux:cat /proc/cpuinfo 查看CPU信息

在Linux系统中, /proc 目录下提供了很多的文件来显示系统的软硬件信息。如果想了解系统中的CPU提供者及相关配置信息,可以查看 /proc/cpuinfo 。比如我们要获取物理CPU的数量、每个物理cpu的核心数、是否开启超线程等信息。

 

首先要搞清楚物理CPU核心数逻辑CPU数的概念:

物理CPU数量(physical id):主板上实际插入的CPU数量,有几个可以通过不重复物理id来统计。

CPU核数(cpu cores):单个CPU上可以处理数据的芯片组数量,如双核、四核等。

逻辑CPU数量:一般来说,

  逻辑CPU = 物理CPU数 × 核心数              # 不支持超线程技术

  逻辑CPU = 物理CPU数量 × 每个CPU核心数量 * 2  # 表示服务器的CPU支持超线程技术(简单来说就是可以让处理器中的1个核心成为操作系统中的2个核心。这样,操作系统可用的执行资源翻了一番,大大提高了系统的整体性能)

 

文件 /proc/cpuinfo 显示了系统正在运行的处理器类型,包括存在的 CPU 数量。这是系统的  cat /proc/cpuinfo  的示例输出。

ubuntu@VM-0-13-ubuntu:~$ cat /proc/cpuinfo 
processor    : 0
vendor_id    : GenuineIntel
cpu family    : 6
model        : 79
model name    : Intel(R) Xeon(R) CPU E5-26xx v4
stepping    : 1
microcode    : 0x1
cpu MHz        : 2394.454
cache size    : 4096 KB
physical id    : 0
siblings    : 2
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 mmx fxsr sse sse2 ss ht syscall nx lm constant_tsc rep_good nopl cpuid tsc_known_freq pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch pti bmi1 avx2 bmi2 rdseed adx xsaveopt
bugs        : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds
bogomips    : 4788.90
clflush size    : 64
cache_alignment    : 64
address sizes    : 40 bits physical, 48 bits virtual
power management:

processor    : 1
vendor_id    : GenuineIntel
cpu family    : 6
model        : 79
model name    : Intel(R) Xeon(R) CPU E5-26xx v4
stepping    : 1
microcode    : 0x1
cpu MHz        : 2394.454
cache size    : 4096 KB
physical id    : 0
siblings    : 2
core id        : 1
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 mmx fxsr sse sse2 ss ht syscall nx lm constant_tsc rep_good nopl cpuid tsc_known_freq pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch pti bmi1 avx2 bmi2 rdseed adx xsaveopt
bugs        : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds
bogomips    : 4788.90
clflush size    : 64
cache_alignment    : 64
address sizes    : 40 bits physical, 48 bits virtual
power management:

解释如下:

processor:系统中逻辑处理核心的数量。对于单核处理器,该类将其视为 CPU 编号,对于多核处理器,它可以是物理内核,也可以是使用超线程技术的虚拟逻辑内核。(processor内核内部使用的对象,不一定绑定到物理设备,它们可能都具有相同的 physical id)

vendor_id:CPU制造商。

cpu family:CPU 产品系列代号。

mode:cpu属于其系列中的哪一代。

model name:CPU的名称及其编号,标称频率。

stepping:CPU属于生产更新版本。

cpu MHz:实际CPU频率。

cache size:CPU二级缓存的大小。

physical id:单个物理CPU标号。

siblings:单个物理 CPU 的逻辑 CPU 数量。siblings = cpu 核心 * [2]。

core id:当前所在CPU中的物理内核id。

cpu cores:逻辑核所在CPU的物理核数。比如这里有2个cpu core,对应的core id是0、1。

apicid:用于区分不同逻辑核心的编号。系统中每个逻辑核的编号必须不同,编号不一定是连续的。

fpu:是否有浮点单元。(Floating Point Unit)

fpu_exception:是否支持浮点计算异常。

cpuid level:在执行cpuid指令之前,eax寄存器中的值会根据不同的值返回不同的内容。

wp:表示当前CPU是否支持内核态用户空间写保护。(Write Protection)

flags:当前CPU支持的功能,例如浮点单元 (FPU) 的存在和处理 MMX 指令的能力。。

bogomips:粗略测量的 CPU 速度(每秒百万条指令)。

clflush size:每个flush缓存的大小单位。

cache_alignment:缓存地址对齐单元。

address sizes:可访问地址空间的数量。

power management:支持电源管理。

 

posted @ 2021-12-06 21:21  賣贾笔的小男孩  阅读(1762)  评论(0编辑  收藏  举报