Linux中的lscpu命令

lscpu命令是从sysfs、/proc/cpuinfo、或者某些适用于特定架构的库中收集数据。命令的输出会以人类易读的方式展示如下信息:cpu、线程、核心、插槽和Non-Uniform MemoryAccess (NUMA)节点的数量,也有cpu共享缓存,cpu的族号,运行模式,处理指令的速度,大小端,步进等信息。

在虚拟环境下,系统架构信息展示映射着客户操作系统的设置,这和物理主机是有明显差异的。在架构上支持检索物理拓扑信息,lscpu命令也显示主机系统中的物理插槽数量,芯片,内核数。

Options可以提供一些参数,用这些参数可以自定义命令输出。

国产飞腾FT设备上的xiaomi内核芯片
Linux中的lscpu命令
Linux中的lscpu命令

Architecture:          aarch64  //架构--这里的64指的位处理器
Byte Order:            Little Endian //低位优先,小端法
CPU(s):                16           //cpu数量
On-line CPU(s) list:   0-15  //在线的cpu数量 有些时候为了省电或者过热的时候,某些CPU会停止运行
Thread(s) per core:    1   //每个核心的线程数
Core(s) per socket:    4   //每个插槽上有几个核心
Socket(s):             4   
CPU SOCKET CORE ONLINE
0   0      0    yes
1   0      1    yes
2   0      2    yes
3   0      3    yes
4   1      4    yes
5   1      5    yes
6   1      6    yes
7   1      7    yes
8   2      8    yes
9   2      9    yes
10  2      10   yes
11  2      11   yes
12  3      12   yes
13  3      13   yes
14  3      14   yes
15  3      15   yes

可以看出每个CPU都是运行的,并且每4个CPU在同一个socket中

相同型号设备上的Intel芯片 lscpu命令结果

Architecture:          x86_64  //架构--这里的64指的位处理器
CPU op-mode(s):        32-bit, 64-bit  
Byte Order:            Little Endian  //低位优先,小端法
CPU(s):                12             //cpu数量
On-line CPU(s) list:   0-11           //在线的cpu数量 有些时候为了省电或者过热的时候,某些CPU会停止运行
Thread(s) per core:    2              //每个核心的线程数
Core(s) per socket:    6              //每个插槽上有几个核心
Socket(s):             1
NUMA node(s):          1              //NUMA
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 86
Model name:            Intel(R) Xeon(R) CPU D-1531 @ 2.20GHz
Stepping:              3            //步进工艺,也可以理解为版本号
CPU MHz:               2200.211
BogoMIPS:              4404.98     // MIPS是每秒百万条指令,Bogo是Bogus(伪)的意思,这里是估算MIPS值
Virtualization:        VT-x        //支持虚拟化技术
L1d cache:             32K         //一级高速缓存 dcache 用来存储数据
L1i cache:             32K          //一级高速缓存 icache 用来存储指令
L2 cache:              256K
L3 cache:              9216K        //缓存速度上 L1 > L2 > L3 > DDR(内存) 内存的理论速度在几十g一秒
NUMA node0 CPU(s):     0-11         //十二个cpu在一个numa节点上

lscpu -e

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

可以看到CPU全在NODE0节点上

再来看一下Intel高端一点的芯片lscpu信息

Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                64
On-line CPU(s) list:   0-63
Thread(s) per core:    2
Core(s) per socket:    16
Socket(s):             2
NUMA node(s):          2
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 85
Model name:            Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz
Stepping:              4
CPU MHz:               2100.000
BogoMIPS:              4207.28
Virtualization:        VT-x
L1d cache:             32K
L1i cache:             32K
L2 cache:              1024K
L3 cache:              22528K
NUMA node0 CPU(s):     0-15,32-47
NUMA node1 CPU(s):     16-31,48-63

上一篇:Java只使用2个CPU中的1个和NUMA(Neo4J)


下一篇:c – 使用numa_alloc_onnode()分配小块是否有限制?