[root@controller01 ~]# cat /proc/cpuinfo |grep “processor”|sort -u|wc -l
80
[root@controller01 ~]#
========================================================================
由于有 超线程技术 所以有必要查看一下物理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 ~]#
============================================================================
- 对应lscpu的Core(S) per socket
[root@controller01 ~]# grep “cpu cores” /proc/cpuinfo|uniq
cpu cores : 10
[root@controller01 ~]#
================================================================================
对应lscpu的:总cpu(CPU(s)) / 物理cpu个数(Socket(s))
[root@controller01 ~]# grep “siblings” /proc/cpuinfo|uniq
siblings : 20
[root@controller01 ~]#
============================================================================
- 脚本内容
#!/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 查看,如下图:
[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