文章目录
- 1. lscpu
- 1.1 Architecture
- 1.2 逻辑核心数
- 1.3 缓存
- 1.4 CPU型号
- 1.5 NUMA架构
- 1.5.1 CPU多核架构
- 1.5.2 多CPU Socket架构
- 2. cat /proc/cpuinfo
- 2.1 关键字段
1. lscpu
通过lscpu
查看当前系统的CPU
信息。
[hadoop@server3 ~]$ lscpuArchitecture: x86_64 CPU op-mode(s): 32-bit, 64-bitByte Order: Little EndianCPU(s): 32On-line CPU(s) list: 0-31Thread(s) per core: 2Core(s) per socket: 8Socket(s): 2NUMA node(s): 2Vendor ID: GenuineIntelCPU family: 6Model: 79Model name: Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHzStepping: 1CPU MHz: 2299.910BogoMIPS: 4205.37Virtualization: VT-xL1d cache: 32KL1i cache: 32KL2 cache: 256KL3 cache: 20480KNUMA node0 CPU(s): 0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30NUMA node1 CPU(s): 1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31
1.1 Architecture
CPU的架构,常见的是x86、arm等。
字段名 | 值 | 说明 |
---|---|---|
Architecture | x86_64 | 使用x86架构 |
CPU op-mode(s) | 32-bit, 64-bit | 表示可以同时运行32位/64位的程序 |
1.2 逻辑核心数
字段名 | 值 | 说明 |
---|---|---|
CPU(s) | 32 | 逻辑核心数,即最大并发执行的线程数 |
On-line CPU(s) list | 0-31 | 可用逻辑核心编号 |
Socket(s) | 2 | CPU插槽数 |
Core(s) per socket | 8 | 单CPU物理核心数 |
Thread(s) per core | 2 | 单物理核新的逻辑核心数(也叫超线程) |
逻辑核心数CPU(S)
= 插槽数Socket(s)
* 单CPU物理核心数Core(s) per socket
* 单物理核新的逻辑核心数Thread(s) per Core
- 插槽,对应/proc/cpuinfo,不同的插槽
physical id
不同 - 单CPU物理核心,对应/proc/cpuinfo,同一个插槽下多个物理核心
physical id
相同,core id
不同 - 超线程,同一个物理线程下,即
physical id
和core id
相同,processor id
不同
1.3 缓存
字段名 | 值 | 说明 |
---|---|---|
L1d cache | 32K | 一级数据缓存 |
L1i cache | 32K | 一级指令缓存 |
L2 cache | 256K | 二级缓存 |
L3 cache | 20480K | 三级缓存 |
1.4 CPU型号
字段名 | 值 | 说明 |
---|---|---|
Model name | Intel® Xeon® CPU E5-2620 v4 @ 2.10GHz | CPU型号 |
1.5 NUMA架构
字段名 | 值 | 说明 |
---|---|---|
NUMA node(s) | 2 | NUMA节点数 |
NUMA node0 CPU(s) | 0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30 | NUMA node0管理的内存分片 |
目前主流的CPU架构有两种:
1.5.1 CPU多核架构
- 一个CPU内运行多个核心,称为物理核心
- 物理核心包含一级指令/数据缓存核二级缓存
- 每个物理核心上还可以运行超线程,称为逻辑核心
- 同一个物理核心上超线程共享一二级缓存
- 同一个CPU上多个物理核心共享三级缓存
1.5.2 多CPU Socket架构
- 每个CPU Socket独立拥有一二三级缓存
- 每个应用程序可以在多个Socket直接调度
- 跨Socket访问内存,需要通过对应内存的管理Socket
- 这种内存访问模型被称为非统一内存访问架构(Non-Uniform Memory Access),NUMA架构
就是上面我们看到NUMA node0 CPU(s)
只管理了一部分内存分片。
2. cat /proc/cpuinfo
通过cat /proc/cpuinfo
查看每一个逻辑CPU的信息。
processor : 31vendor_id : GenuineIntelcpu family : 6model : 79model name : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHzstepping : 1microcode : 0xb00001fcpu MHz : 2300.156cache size : 20480 KBphysical id : 1siblings : 16core id : 7cpu cores : 8apicid : 31initial apicid : 31fpu : yesfpu_exception : yescpuid level : 20wp : yesflags : 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 rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 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 3dnowprefetch epb invpcid_single intel_pt kaiser tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm cqm rdseed adx smap xsaveopt cqm_llc cqm_occup_llc dtherm ida arat pln ptsbugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgsbogomips : 4205.37clflush size : 64cache_alignment : 64address sizes : 46 bits physical, 48 bits virtualpower management:
2.1 关键字段
字段名 | 值 | 说明 |
---|---|---|
processor | 31 | 逻辑CPU唯一ID |
physical id | 1 | CPU Socket唯一ID |
core id | 7 | Socket下物理核心ID |
siblings | 16 | 一个CPU Socket下支持的逻辑核心数 |
cpu cores | 8 | 一个CPU Socket下支持的物理核心数 |