linux cpu相关信息

通过/proc/cpuinfo查看cpu信息

查看cpu信息

[root@localhost ~]# cat /proc/cpuinfo
processor   : 0
vendor_id   : GenuineIntel
cpu family  : 6
model       : 79
model name  : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
stepping    : 1
microcode   : 0xb000021
cpu MHz     : 1241.789
cache size  : 20480 KB
physical id : 0
siblings    : 16
core id     : 0
cpu cores   : 8
apicid      : 0
initial apicid  : 0
fpu     : yes
fpu_exception   : yes
cpuid level : 20
wp      : yes
flags       :  ……
bogomips    : 4199.77
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       : 79
model name  : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
stepping    : 1
microcode   : 0xb000021
cpu MHz     : 1199.871
cache size  : 20480 KB
physical id : 1
siblings    : 16
core id     : 0
cpu cores   : 8
apicid      : 16
initial apicid  : 16
fpu     : yes
fpu_exception   : yes
cpuid level : 20
wp      : yes
flags       :  ……
bogomips    : 4203.77
clflush size    : 64
cache_alignment : 64
address sizes   : 46 bits physical, 48 bits virtual
power management:

processor   : 2
vendor_id   : GenuineIntel
cpu family  : 6
model       : 79
model name  : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
stepping    : 1
microcode   : 0xb000021
cpu MHz     : 1299.949
cache size  : 20480 KB
physical id : 0
siblings    : 16
core id     : 1
cpu cores   : 8
apicid      : 2
initial apicid  : 2
fpu     : yes
fpu_exception   : yes
cpuid level : 20
wp      : yes
flags       :  ……
bogomips    : 4199.77
clflush size    : 64
cache_alignment : 64
address sizes   : 46 bits physical, 48 bits virtual
power management:

processor   : 3
vendor_id   : GenuineIntel
cpu family  : 6
model       : 79
model name  : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
stepping    : 1
microcode   : 0xb000021
cpu MHz     : 1215.292
cache size  : 20480 KB
physical id : 1
siblings    : 16
core id     : 1
cpu cores   : 8
apicid      : 18
initial apicid  : 18
fpu     : yes
fpu_exception   : yes
cpuid level : 20
wp      : yes
flags       : fpu  ……
bogomips    : 4203.77
clflush size    : 64
cache_alignment : 64
address sizes   : 46 bits physical, 48 bits virtual
power management:

processor   : 4
vendor_id   : GenuineIntel
cpu family  : 6
model       : 79
model name  : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
stepping    : 1
microcode   : 0xb000021
cpu MHz     : 1199.953
cache size  : 20480 KB
physical id : 0
siblings    : 16
core id     : 2
cpu cores   : 8
apicid      : 4
initial apicid  : 4
fpu     : yes
fpu_exception   : yes
cpuid level : 20
wp      : yes
flags       : fpu  ……
bogomips    : 4199.77
clflush size    : 64
cache_alignment : 64
address sizes   : 46 bits physical, 48 bits virtual
power management:

……

processor   : 30
vendor_id   : GenuineIntel
cpu family  : 6
model       : 79
model name  : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
stepping    : 1
microcode   : 0xb000021
cpu MHz     : 1339.406
cache size  : 20480 KB
physical id : 0
siblings    : 16
core id     : 7
cpu cores   : 8
apicid      : 15
initial apicid  : 15
fpu     : yes
fpu_exception   : yes
cpuid level : 20
wp      : yes
flags       : fpu ……
bogomips    : 4199.77
clflush size    : 64
cache_alignment : 64
address sizes   : 46 bits physical, 48 bits virtual
power management:

processor   : 31
vendor_id   : GenuineIntel
cpu family  : 6
model       : 79
model name  : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
stepping    : 1
microcode   : 0xb000021
cpu MHz     : 1199.953
cache size  : 20480 KB
physical id : 1
siblings    : 16
core id     : 7
cpu cores   : 8
apicid      : 31
initial apicid  : 31
fpu     : yes
fpu_exception   : yes
cpuid level : 20
wp      : yes
flags       : ……
bogomips    : 4203.77
clflush size    : 64
cache_alignment : 64
address sizes   : 46 bits physical, 48 bits virtual
power management:

之所以保留这么多信息,是为了查看core id 、physical id之间的关系

快速解读

比较重要的输出属性

属性名 描述
processor 逻辑处理器的ID
model name CPU型号
cpu MHz cpu主频
physical id 物理cpu编号
core id 处理器内核编号
cpu cores 相同物理封装处理器中的内核数
siblings 相同物理封装处理器中逻辑处理器数
  • 拥有相同 physical id的所有逻辑处理器共享同一个物理插座。
  • Siblings 表示位于这一物理封装上的逻辑处理器的数量。
  • 每个 core id 均代表一个唯一的处理器内核。所有带有相同 core id 的逻辑处理器均位于同一个处理器内核上。
  • 有一个以上逻辑处理器拥有相同的 core id 和 physical id,则说明系统支持超线程(HT)技术。
  • 如果有两个或两个以上的逻辑处理器拥有相同的 physical id,但是 core id 不同,则说明这是一个多内核处理器。cpu cores 条目也可以表示是否支持多内核。

相同的 physical id 的 CPU 是同一个 CPU 封装的线程或核心
相同的 core id 的 CPU 是同一个 core 超线程。

常用操作

在进行梳理操作之前,先了解下一些概念

概念 描述
物理CPU 实际插槽上的CPU个数。物理cpu数量,可以统计不重复的 physical id
逻辑CPU 一般情况,一颗cpu可以有多核,加上intel的超线程技术(HT), 可以在逻辑上再分一倍数量的cpu core出来。逻辑CPU数量=物理cpu数量 x cpu cores 这个规格值 x 2(如果支持并开启ht)
CPU核数 一块CPU上面能处理数据的芯片组的数量。一般来说,物理CPU个数×每颗核数就应该等于逻辑CPU的个数,如果不相等的话,则表示服务器的CPU支持超线程技术

总核数 = 物理CPU个数 X 每颗物理CPU的核数
总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数

是否开启超线程HT

逻辑CPU > 物理CPU x CPU核数 #开启超线程
逻辑CPU = 物理CPU x CPU核数 #没有开启超线程或不支持超线程

统计物理CPU个数

[root@localhost ~]# grep "physical id" /proc/cpuinfo|sort |uniq|wc -l 
2

统计逻辑CPU个数

[root@localhost ~]# grep "processor" /proc/cpuinfo |wc -l 
32

查看CPU是几核的

[root@localhost ~]# grep "cores" /proc/cpuinfo|uniq 
cpu cores   : 8

查看CPU主频

[root@localhost ~]# grep MHz /proc/cpuinfo
cpu MHz     : 1199.625
cpu MHz     : 1199.953
……
cpu MHz     : 1200.035
cpu MHz     : 1200.199

每个物理CPU中的逻辑CPU

[root@localhost ~]# grep "siblings" /proc/cpuinfo 
siblings    : 16
……
siblings    : 16

CPU概况

使用lscpu命令

[root@localhost ~]# lscpu
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                32
On-line CPU(s) list:   0-31
Thread(s) per core:    2
Core(s) per socket:    8
Socket(s):             2
NUMA node(s):          2
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 79
Model name:            Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
Stepping:              1
CPU MHz:               1200.363
CPU max MHz:           3000.0000
CPU min MHz:           1200.0000
BogoMIPS:              4199.77
Virtualization:        VT-x
L1d cache:             32K
L1i cache:             32K
L2 cache:              256K
L3 cache:              20480K
NUMA node0 CPU(s):     0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30
NUMA node1 CPU(s):     1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31
Flags:                 fpu ……

socket就是主板上插cpu的槽的数目,也就是可以插入的物理CPU的个数。
core就是我们平时说的“核“,每个物理CPU可以双核,四核等等。
thread就是每个core的硬件线程数,即超线程

题外话(proc文件系统)

在Linux中有额外的机制可以为内核和内核模块将信息发送给进程proc文件系统:是一种内核和内核模块用来向进程发送信息的机制(所以叫做/proc),可以和内核内部数据结构进行交互,获取有关进程的有用信息,在运行中改变设置(通过改变内核参数)。

与其他文件系统不同,proc 存在于内存之中而不是硬盘上。

proc由内核控制,没有承载proc的设备。因为proc 主要存放由内核控制的状态信息,所以大部分这些信息的逻辑位置位于内核控制的内存。
proc文件系统可以被用于收集有用的关于系统和运行中的内核的信息

目录中可能包含以下文件:

ls /proc/ -l|awk '{if($NF!~/^[0-9]/)print $NF}'
文件名 描述
acpi
buddyinfo
……
vmstat
zoneinfo

并不是所有这些目录在你的系统中都有,这取决于你的内核配置和装载的模块。
除了以上介绍的这些,还有的是一些以数字命名的目录,它们是进程目录。

ls /proc/ -l|awk '{if($NF~/^[0-9]/)print $NF}'

系统中当前运行的每一个进程都有对应的一个目录在/proc下,以进程的PID号为目录名,它们是读取进程信息的接口。

ls /proc/99 -l|awk '{if($NF!~/^[0-9]/)print $NF}'
文件名 描述
attr
autogroup
auxv
……
wchan

猜你喜欢

转载自blog.csdn.net/yue530tomtom/article/details/80001776