linux查看cpu信息的方式

  • 使用命令
    1
    lscpu
  • 查看文件
    cpuinfo这个文件的输出行数是非常多的,取决于机器cpu的数量配置,对于服务器来说输出可能几百行,但大部分的都是重复的
    1
    cat /proc/cpuinfo

cpuinfo示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
processor	: 0
vendor_id : GenuineIntel
cpu family : 6
model : 85
model name : Intel(R) Xeon(R) Gold 6271C CPU @ 2.60GHz
stepping : 7
microcode : 0x1
cpu MHz : 2593.906
cache size : 33792 KB
physical id : 0
siblings : 2
core id : 0
cpu cores : 1
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 pdpe1gb rdtscp lm constant_tsc arch_perfmon rep_good nopl xtopology eagerfpu 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 invpcid_single ssbd ibrs ibpb fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid mpx avx512f avx512dq rdseed adx smap clflushopt clwb avx512cd avx512bw avx512vl xsaveopt xsavec xgetbv1 arat umip pku ospke avx512_vnni spec_ctrl
bogomips : 5187.81
clflush size : 64
cache_alignment : 64
address sizes : 46 bits physical, 48 bits virtual
power management:

processor : 1
vendor_id : GenuineIntel
cpu family : 6
model : 85
model name : Intel(R) Xeon(R) Gold 6271C CPU @ 2.60GHz
stepping : 7
microcode : 0x1
cpu MHz : 2593.906
cache size : 33792 KB
physical id : 0
siblings : 2
core id : 0
cpu cores : 1
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 pdpe1gb rdtscp lm constant_tsc arch_perfmon rep_good nopl xtopology eagerfpu 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 invpcid_single ssbd ibrs ibpb fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid mpx avx512f avx512dq rdseed adx smap clflushopt clwb avx512cd avx512bw avx512vl xsaveopt xsavec xgetbv1 arat umip pku ospke avx512_vnni spec_ctrl
bogomips : 5187.81
clflush size : 64
cache_alignment : 64
address sizes : 46 bits physical, 48 bits virtual
power management:

字符解释

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
processor	: 0 #系统中逻辑处理核心数的编号,从0开始排序
vendor_id : GenuineIntel #CPU制造商
cpu family : 6 #CPU产品系列代号
model : 85 #CPU属于其系列中的哪一代的代号
model name : Intel(R) Xeon(R) Gold 6271C CPU @ 2.60GHz #CPU属于的名字及其编号、标称主频
stepping : 7 #CPU属于制作更新版本
microcode : 0x1 #CPU微代码
cpu MHz : 2593.906 #CPU的实际使用主频
cache size : 33792 KB #CPU二级缓存大小
physical id : 0 #单个物理CPU的标号
siblings : 2 #单个物理CPU的逻辑CPU数。siblings=cpu cores [*2]
core id : 0 #当前物理核在其所处CPU中的编号,这个编号不一定连续
cpu cores : 1 #该逻辑核所处CPU的物理核数。比如此处cpu cores 是4个,那么对应core id 可能是 1、3、4、5
apicid : 0 #用来区分不同逻辑核的编号,系统中每个逻辑核的此编号必然不同,此编号不一定连续
initial apicid : 0 #我不知道
fpu : yes #是否具有浮点运算单元
fpu_exception : yes #是否支持浮点计算异常
cpuid level : 13 #执行cpuid指令前,eax寄存器中的值,根据不同的值cpuid指令会返回不同的内容
wp : yes #表明当前CPU是否在内核态支持对用户空间的写保护
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 pdpe1gb rdtscp lm constant_tsc arch_perfmon rep_good nopl xtopology eagerfpu 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 invpcid_single ssbd ibrs ibpb fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid mpx avx512f avx512dq rdseed adx smap clflushopt clwb avx512cd avx512bw avx512vl xsaveopt xsavec xgetbv1 arat umip pku ospke avx512_vnni spec_ctrl #当前CPU支持的功能
bogomips : 5187.81 #在系统内核启动时粗略测算的CPU速度
clflush size : 64 #每次刷新缓存的大小单位
cache_alignment : 64 #缓存地址对齐单位
address sizes : 46 bits physical, 48 bits virtual #可访问地址空间位数
power management: #对能源管理的支持

cpu数量的计算

  • 物理CPU数(physical id)
    就是处理器的实际数量,一颗还是两颗(你肉眼看得见的那个)
  • CPU核心数(cpu cores)
    单块CPU上面能处理数据的芯片组的数量,如双核、四核等
  • 计算
    总核数 = 物理CPU个数 * 每颗物理CPU的核数
    总逻辑CPU数 = 物理CPU个数 * 每颗物理CPU的核数 * 超线程数