服务器CPU、物理核、逻辑核概念与关系,CPU查询常用命令

标题基础概念

  • CPU(Central Processing Unit): 中央处理单元,CPU不等于物理核,更不等于逻辑核。
  • 物理核(physical core/processor): 可以看的到的,真实的cpu核,有独立的电路元件以及L1,L2缓存,可以独立地执行指令。
  • 逻辑核(logical core/processor,LCPU): 在同一个物理核内,逻辑层面的核。(比喻,像动画片一样,我们看到的“动画”,其实是一帧一帧静态的画面,24帧/s连起来就骗过了人类的眼睛,看起来像动起来一样。逻辑核也一样,物理核通过高速运算,让应用程序以为有两个cpu在运算)。
  • 超线程(Hyper-threading, HT):超线程可以在一个逻辑核等待指令执行的间隔(等待从cache或内存中获取下一条指令),把时间片分配到另一个逻辑核。高速在这两个逻辑核之间切换,让应用程序感知不到这个间隔,误认为自己是独占了一个核。

关系: 一个CPU可以有多个物理核。如果开启了超线程,一个物理核可以分成n个逻辑核,n为超线程的数量。

逻辑CPU与虚拟CPU

  • 虚拟CPU术语与逻辑CPU相当,但它增加了一定的细微差别:它在计算虚拟化方面更加框架化。它指的是从底层主机硬件映射到虚拟机的那些cpus,可以是物理或逻辑cpus。通常,来自主机服务器的1个逻辑cpu映射到虚拟机内的1个虚拟cpu,因此它们几乎是类似的术语。

查询Linux系统有多少核心和处理器?

查看Linux上存在的处理器数量的最简单和最短的方法,因为它是coreutils 的一部分而被广泛扩展:

[root@172 ~]# nproc --all
64

另一种获得相同结果的方法是lscpu命令,它也允许我们从处理器获取额外信息:

[root@172 ~]# lscpu | grep 'CPU(s)'
CPU(s):                64
On-line CPU(s) list:   0-63
NUMA node0 CPU(s):     0-15,32-47
NUMA node1 CPU(s):     16-31,48-63

或者我们可以查询/proc filesystem中的cpuinfo文件:

[root@172 ~]# grep processor /proc/cpuinfo | wc - l
     64     192     950 -
wc: l: No such file or directory
     64     192     950 total

/pro/cpuinfo文件中有关于这些处理器的许多其他详细信息,包括CPU型号和内核数

~$ cat /proc/cpuinfo | grep "model name"
model name	: Intel(R) Xeon(R) Gold 5218 CPU @ 2.30GHz
model name	: Intel(R) Xeon(R) Gold 5218 CPU @ 2.30GHz
~$ cat /proc/cpuinfo | grep "cpu cores"
cpu cores	: 16
cpu cores	: 16

如上,我们示例中的机器有2个处理器,每个处理器有16个核心。

由于HyperThreading技术和其他处理器增强功能,我们可能需要区分物理CPU和逻辑CPU

# 获取逻辑cpu数量(包括超线程逻辑cpu数量):
~$ lscpu -p | egrep -v '^#' | wc -l
64

# 获得物理cpu/核心的数量:
~$ lscpu -p | egrep -v '^#' | sort -u -t, -k 2,4 | wc -l
32

我们也可以使用其他工具来获取硬件信息,比如dmidecode,但是我们需要root权限:

[root@172 ~]# dmidecode -t 4 | egrep 'Socket Designation|Count'
	Socket Designation: CPU0
	Core Count: 16
	Thread Count: 32
	Socket Designation: CPU1
	Core Count: 16
	Thread Count: 32

如果运行上述命令,您会发现系统中存在多个CPU或多个内核,您还需要确保当前的Linux内核具有多处理器支持

[root@172 ~]# uname -a
Linux 172.31.169.168 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

最后,我们来看下查看cpu参数的命令

Architecture:          x86_64 #架构
CPU op-mode(s):        32-bit, 64-bit	#运行方式
Byte Order:            Little Endian	#字节顺序
CPU(s):                64	#逻辑cpu颗数 
On-line CPU(s) list:   0-63	#在线CPU
Thread(s) per core:    2	#每个核心线程
Core(s) per socket:    16	#每个cpu插槽核数/每颗物理cpu核数 
Socket(s):             2	#cpu插槽数 
NUMA node(s):          2	#非统一内存访问节点
Vendor ID:             GenuineIntel	#cpu厂商ID 
CPU family:            6	#cpu系列 
Model:                 85	#型号编号
Model name:            Intel(R) Xeon(R) Gold 5218 CPU @ 2.30GHz	#型号名称
Stepping:              7	#步进
CPU MHz:               2799.896	#cpu主频 
CPU max MHz:           3900.0000
CPU min MHz:           1000.0000
BogoMIPS:              4600.00
Virtualization:        VT-x	#虚拟化架构
L1d cache:             32K	#一级缓存(具体为L1数据缓存) 
L1i cache:             32K	#一级缓存(具体为L1指令缓存) 
L2 cache:              1024K	#二级缓存
L3 cache:              22528K	#三级缓存
NUMA node0 CPU(s):     0-15,32-47
NUMA node1 CPU(s):     16-31,48-63

查看centos版本

cat /etc/redhat-release
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

时间辜负了谁

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值