Linux系统下查看CPU信息



查看CPU信息(型号):

# cat /proc/cpuinfo| grep name | cut -f2 -d: | uniq -c

     8 Intel(R) Xeon(R) CPU           E5410   @ 2.33GHz

(看到有8个逻辑CPU, 也知道了CPU型号)


查看逻辑CPU个数:

#cat /proc/cpuinfo|grep "processor"|sort -u|wc -l
24


查看物理CPU个数:

#grep"physical id" /proc/cpuinfo|sort -u|wc-l                  
2

#grep"physical id" /proc/cpuinfo|sort-u                  
physical id     : 0
physical id     : 1


查看每个物理CPU内核个数:

#grep "cpucores" /proc/cpuinfo|uniq
cpu cores       : 6


每个物理CPU上逻辑CPU个数:

#grep"siblings" /proc/cpuinfo|uniq
siblings        : 12


判断是否开启了抄超线程:

如果多个逻辑CPU的"physical id"和"core id"均相同,说明开启了超线程

或者换句话说

逻辑CPU个数 > 物理CPU个数 * CPU内核数开启了超线程

逻辑CPU个数 = 物理CPU个数 * CPU内核数没有开启超线程


一次性查询所有信息:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

#!/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 "*****************************"



执行结果:

#./cpuinfo  
****** CPU Information ******
Logical CPU Number  : 24
Physical CPU Number : 2
CPU Core Number     : 6
HT Number           : 2
*****************************