linux查看物理内核等信息(包括lscpu)

说明

查看这些之前我想说一下 lscpu 命令 ,因为用一堆命令筛选出来的结果 lscpu 基本上都有,而且 还有些服务器只有用 lscpu才能看到结果,筛选的看不到,下面到时候会有说明!

[root@controller01 ~]# lscpu
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                80  # 总cpu数量
On-line CPU(s) list:   0-79 # 在线的cpu数量 有些时候为了省电或者过热的时候,某些CPU会停止运行
Off-line CPU(s) list:  # 并不是每台服务器都有,这是不在线cpu,也就是未使用的cpu,如果有参数 便是不在线的 cpu号 (这部分是vios中经过多线程技术,未分配给本分区的cup数量。)
Thread(s) per core:    2 # 每个核心的线程数
Core(s) per socket:    10 # 每个cpu插槽核数/每颗物理cpu核数 
Socket(s):             4 # cpu插槽数 如这就是有4颗物理cpu
NUMA node(s):          4
Vendor ID:             GenuineIntel # cpu厂商ID 
CPU family:            6 # cpu系列 
Model:                 63 # 型号
Model name:            Intel(R) Xeon(R) CPU E7-4820 v3 @ 1.90GHz  # 型号名
Stepping:              4 # #步进 
CPU MHz:               1899.925 # cpu主频 
BogoMIPS:              3798.76
Virtualization:        VT-x # cpu支持的虚拟化技术 
L1d cache:             32K # 一级高速缓存 dcache 用来存储数据
L1i cache:             32K # 一级高速缓存 icache 用来存储指令
L2 cache:              256K
L3 cache:              25600K # 缓存速度上 L1 > L2 > L3 > DDR(内存) 内存的理论速度在几十g一秒

查看逻辑CPU个数

  • 对应 lscpu 的CPU(s)
[root@controller01 ~]# cat /proc/cpuinfo |grep "processor"|sort -u|wc -l
80
[root@controller01 ~]# 

在这里插入图片描述

查看物理CPU个数

由于有 超线程技术 所以有必要查看一下物理CPU个数:
超线程技术:通过此技术,英特尔实现在一个实体CPU中,提供两个逻辑线程。之后的Pentium D纵使不支持超线程技术,但就集成了两个实体核心,所以仍会见到两个线程。超线程的未来发展,是提升处理器的逻辑线程。英特尔于2016年发布的Core i7-6950X便是将10核心的处理器,加上超线程技术,使之成为20个逻辑线程的产品。

  • 对应lscpu的Socket(S)
[root@controller01 ~]# grep "physical id" /proc/cpuinfo|sort -u|wc -l 
4
[root@controller01 ~]# 

在这里插入图片描述

查看每个物理CPU内核个数

  • 对应lscpu的Core(S) per socket
[root@controller01 ~]# grep "cpu cores" /proc/cpuinfo|uniq
cpu cores       : 10
[root@controller01 ~]# 

在这里插入图片描述

查看每个物理CPU上逻辑CPU个数

对应lscpu的:总cpu(CPU(s)) / 物理cpu个数(Socket(s))

[root@controller01 ~]# grep "siblings" /proc/cpuinfo|uniq
siblings        : 20
[root@controller01 ~]# 

在这里插入图片描述

脚本一次性查看上面4个信息

  • 脚本内容
#!/bin/bash

physicalNumber=0
coreNumber=0
logicalNumber=0
HTNumber=0

logicalNumber=$(grep "processor" /proc/cpuinfo|sort -u|wc -l)
physicalNumber=$(grep "physical id" /proc/cpuinfo|sort -u|wc -l)
coreNumber=$(grep "cpu cores" /proc/cpuinfo|uniq|awk -F':' '{print $2}'|xargs)
HTNumber=$((logicalNumber / (physicalNumber * coreNumber)))

echo "****** CPU Information ******"
echo "Logical CPU Number : ${logicalNumber}"
echo "Physical CPU Number : ${physicalNumber}"
echo "CPU Core Number : ${coreNumber}"
echo "HT Number : ${HTNumber}"

echo "*****************************"
  • 运行结果
[root@controller01 ~]# ./cpuinfo # cpuinfo是自定义名称
****** CPU Information ******
Logical CPU Number : 80
Physical CPU Number : 4
CPU Core Number : 10
HT Number : 20

判断是否开启了超线程

如果多个逻辑CPU的"physical id"和"core id"均相同,说明开启了超线程
或者换句话说
逻辑CPU个数 > 物理CPU个数 * CPU内核数 开启了超线程
逻辑CPU个数 = 物理CPU个数 * CPU内核数 没有开启超线程

建议使用lscpu看信息

最开始说到了 有些服务器通过命令筛选是没有结果的,但能通过 lscpu 查看,如下图:

[root@node-55 ~]# grep "cpu cores" /proc/cpuinfo|uniq 
[root@node-55 ~]# 
[root@node-55 ~]# grep "siblings" /proc/cpuinfo|uniq
[root@node-55 ~]# 
[root@node-55 ~]# lscpu
Architecture:          ppc64le
Byte Order:            Little Endian
CPU(s):                80
On-line CPU(s) list:   0,8,16,24,32,40,48,56,64,72
Off-line CPU(s) list:  1-7,9-15,17-23,25-31,33-39,41-47,49-55,57-63,65-71,73-79
Thread(s) per core:    1
Core(s) per socket:    10
Socket(s):             1
NUMA node(s):          1
Model:                 2.0 (pvr 004d 0200)
Model name:            POWER8 (raw), altivec supported
L1d cache:             64K
L1i cache:             32K
L2 cache:              512K
L3 cache:              8192K
NUMA node0 CPU(s):     0,8,16,24,32,40,48,56,64,72
[root@node-55 ~]# 

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

҉人间无事人

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

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

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

打赏作者

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

抵扣说明:

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

余额充值