0%

使用lscpu命令查看CPU信息

关于CPU的基本概念、架构和核心参数可参见《CPU》

《使用/proc/cpuinfo文件查看CPU信息》中介绍了使用“/proc/cpuinfo”文件查看CPU信息,本文介绍使用lscpu命令查看CPU信息(可以与官网根据CPU具体型号查得的信息进行比对验证)。
lscpu命令汇集了“/proc/cpuinfo文件”,“sysfs文件系统”等来源中的CPU相关信息,处理后以强可读性形式进行呈现。
本文介绍所基于的lscpu命令版本为“util-linux 2.34”。

一、核心参数获取

1.1、CPU数量相关

  1. 物理CPU数量:执行lscpu命令结果中的Socket(s)字段
  2. 物理CPU Core数量:执行lscpu命令结果中的Core(s) per socket字段(准确来说,该值只是第一个逻辑CPU Core所在物理CPU上的物理CPU Core数量,其他物理CPU上的物理CPU Core数量可能不同
  3. 逻辑CPU Core数量:执行lscpu命令结果中的CPU(s)字段

1.2、主频

  1. 工作实际主频:执行lscpu命令结果中的CPU MHz字段(准确来说,该值只是第一个逻辑CPU Core的工作实际主频

1.3、缓存大小

  1. L1d cache(用于存储指令的一级高速缓存):执行lscpu命令结果中的L1d cache字段(准确来说,该值只是第一个逻辑CPU Core所在物理CPU Core的L1d cache
  2. L1i cache(用于存储数据的一级高速缓存):执行lscpu命令结果中的L1i cache字段(准确来说,该值只是第一个逻辑CPU Core所在物理CPU Core的L1i cache
  3. L2 cache(二级高速缓存):执行lscpu命令结果中的L2 cache字段(准确来说,该值只是第一个逻辑CPU Core所在物理CPU Core的L2 cache
  4. L3 cache(三级高速缓存):执行lscpu命令结果中的L3 cache字段(准确来说,该值只是第一个逻辑CPU Core所在物理CPU的L3 cache

二、lscpu命令使用说明

2.1、执行lscpu命令

2.1.1、一个样例结果

执行lscpu命令的一个样例结果如下:

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
Architecture:          x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 8
On-line CPU(s) list: 0-7
Thread(s) per core: 2
Core(s) per socket: 2
Socket(s): 2
NUMA node(s): 2
Vendor ID: GenuineIntel
CPU family: 6
Model: 63
Model name: Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz
Stepping: 2
CPU MHz: 2600.092
BogoMIPS: 5199.90
Virtualization: VT-x
L1d cache: 32K
L1i cache: 32K
L2 cache: 256K
L3 cache: 20480K
NUMA node0 CPU(s): 0,2,4,6
NUMA node1 CPU(s): 1,3,5,7
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 rdt
scp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonst
op_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 s
sse3 sdbg fma cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic movbe popcnt
tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm epb invpcid_s
ingle tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 av
x2 smep bmi2 erms invpcid cqm xsaveopt cqm_llc cqm_occup_llc dtherm ida
arat pln pts

2.1.2、执行lscpu命令结果字段说明

在执行lscpu命令的结果中,除了CPU(s)On-line CPU(s) listSocket(s)NUMA node(s)NUMA node0 CPU(s)NUMA node1 CPU(s)字段表征整个CPU架构的统计值外,其他字段都表征第一个逻辑CPU Core的相关参数值。

接下来为方便叙述,以“CPU0”代指第一个逻辑CPU Core。

参数名称 参数含义 样例中的对应 参数层次说明
Architecture CPU0的CPU架构 x86_64 不确定继承自所在物理CPU Core还是所在物理CPU,一般继承自所在物理CPU
CPU op-mode(s) CPU0的CPU运行模式 32-bit, 64-bit 不确定继承自所在物理CPU Core还是所在物理CPU,一般继承自所在物理CPU
Byte Order CPU0的CPU字节序 Little Endian 不确定继承自所在物理CPU Core还是所在物理CPU,一般继承自所在物理CPU
CPU(s) 逻辑CPU Core数量 8 /
On-line CPU(s) list 在线(即生效的)逻辑CPU Core编号列表 0-7 /
Thread(s) per core CPU0所在物理CPU Core允许同时执行的线程数,当值为P时,即P路SMT 2 继承自所在物理CPU Core
Core(s) per socket CPU0所在物理CPU上的物理CPU Core数量 2 继承自所在物理CPU
Socket(s) 座数,即物理CPU数量 2 /
NUMA node(s) NUMA节点数量 2 /
Vendor ID CPU0的制造厂商ID GenuineIntel(表示英特尔公司) 不确定继承自所在物理CPU Core还是所在物理CPU,一般继承自所在物理CPU
CPU family CPU0的CPU系列,即“微处理器架构代号” 6 不确定继承自所在物理CPU Core还是所在物理CPU,一般继承自所在物理CPU
Model CPU0的在具体CPU系列中的CPU具体型号,搜索时须转换成十六进制 63,即0x3f 不确定继承自所在物理CPU Core还是所在物理CPU,一般继承自所在物理CPU
Model Name CPU0的型号名称,包括“品牌商标”,“具体产品编号”,“CPU额定主频”等信息 “Intel(R) Xeon(R)”:英特尔公司的至强品牌(英特尔品牌商标另外还有Intel(R) Core(TM)-英特尔酷睿品牌Intel(R) Pentium(TM)-英特尔奔腾品牌Intel(R) Celeron(TM)-英特尔赛扬品牌等)
“E5-2650 v3”:具体产品编号
“2.30GHz”:额定主频
不确定继承自所在物理CPU Core还是所在物理CPU,一般继承自所在物理CPU
Stepping CPU0的更新步进,表示版本小升级编号 2 不确定继承自所在物理CPU Core还是所在物理CPU,一般继承自所在物理CPU
CPU MHz CPU0的工作实际主频 2600.092 不确定继承自所在物理CPU Core还是所在物理CPU,一般继承自所在物理CPU Core
BogoMIPS CPU0在系统内核启动时粗略测算的速度(Million Instructions Per Second) 5199.90 不确定继承自所在物理CPU Core还是所在物理CPU,一般继承自所在物理CPU Core
Virtualization CPU0是否支持虚拟化 VT-x 不确定继承自所在物理CPU Core还是所在物理CPU,一般继承自所在物理CPU Core
L1d cache CPU0的L1d Cache大小 32K 继承自所在物理CPU Core
L1i cache CPU0的L1i Cache大小 32K 继承自所在物理CPU Core
L2 cache CPU0的L2 Cache 256K 继承自所在物理CPU Core
L3 cache CPU0的L3 Cache大小 20480K 继承自所在物理CPU
NUMA node0 CPU(s) NUMA node0节点管控的逻辑CPU Core列表 0,2,4,6
NUMA node1 CPU(s) NUMA node1节点管控的逻辑CPU Core列表 1,3,5,7
Flags CPU0支持的功能 fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36... 不确定继承自所在物理CPU Core还是所在物理CPU,一般继承自所在物理CPU Core

2.2、执行lscpu -e命令

2.2.1、一个样例结果

执行lscpu -e命令的一个样例结果如下:

1
2
3
4
5
6
7
8
9
CPU NODE SOCKET CORE L1d:L1i:L2:L3 ONLINE
0 0 0 0 0:0:0:0 yes
1 1 1 1 1:1:1:1 yes
2 0 0 2 2:2:2:0 yes
3 1 1 3 3:3:3:1 yes
4 0 0 0 0:0:0:0 yes
5 1 1 1 1:1:1:1 yes
6 0 0 2 2:2:2:0 yes
7 1 1 3 3:3:3:1 yes

2.2.2、执行lscpu -e命令结果字段说明

列名称 列含义 样例中的对应
CPU 逻辑CPU Core编号 0-7
NODE NUMA节点编号 0-1
SOCKET 物理CPU编号 0-1
CORE 物理CPU Core编号,须注意,编号规则跟“/proc/cpuinfo”中不一致,详见备注1 0-3
L1d:L1i:L2:L3 L1d,L1i,L2,L3 Cache的所属情况说明:
1)L1d,L1i,L2指明所属物理CPU Core
2)L3指明所属物理CPU
3:3:3:1
1)L1d:L1i:L2属于编号为3的物理CPU Core
2)L3属于编号为1的物理CPU
ONLINE 表明逻辑CPU Core是否在线 yes

[备注1] 对于物理CPU Core编号,/proc/cpuinfolscpu -e中两处编号规则不一致,以两个物理CPU(CPU-A和CPU-B):CPU-A内两个物理CPU Core(CPU-A-0和CPU-A-1);CPU-B内两个物理CPU Core(CPU-B-0和CPU-B-1)为例进行说明:1)在“/proc/cpuinfo”中,以单物理CPU为单元,在其内进行编号,故有一种编号方案[CPU-A-0]:0;[CPU-A-1]:1;[CPU-B-0]:0;[CPU-B-1]:1;2)在“lscpu -e”中,以所有物理CPU为单元,在其内进行编号,故有一种编号方案[CPU-A-0]:0;[CPU-A-1]:1;[CPU-B-0]:2;[CPU-B-1]:3


参考文献

[1]《CPU》
[2]https://www.tecmint.com/check-linux-cpu-information/
[3]man lscpu
[4]https://blog.csdn.net/weixin_39974409/article/details/110893710

您的支持将鼓励我继续分享!