物理CPU,物理CPU核心,逻辑CPU,超线程

 

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

cat /proc/cpuinfo | more

processor       : 0     -----逻辑CPU的唯一标识符
vendor_id       : GenuineIntel  ---标识英特尔处理器
cpu family      : 6
model           : 62
stepping        : 4
cpu MHz         : 2099.886
cache size      : 15360 KB
physical id     : 0  ---物理cpu的唯一标识
siblings        : 12 ---代表逻辑cpu个数
core id         : 0  ---每个物理内核的唯一标识
cpu cores       : 6  ---物理cpu中的核心数
如果有两个逻辑CPU具有相同的”core id”,那么超线程是打开的。或者siblings数目比cpu cores数目大

# 查看物理CPU个数
cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l
2
# 查看每个物理CPU中core的个数(即核数)
cat /proc/cpuinfo| grep "cpu cores"| uniq
cpu cores       : 6
# 查看逻辑CPU的个数
cat /proc/cpuinfo| grep "processor"| wc -l
24
2*6*2=24
我们在查看linux或者unix服务器的负载时候uptime
15:43:08 up 271 days, 15:40,  2 users,  load average: 2.40, 2.85, 2.94
需要使用逻辑cpu个数,来衡量

另外我们使用top按下1

查看的也是逻辑CPU

解释:

1)Processing Unit(运算处理单元),简称PU

2)Architectual State(架构状态单元),简称AS

PU一般就是执行运算,比如算数运算加减乘除。AS执行一些逻辑和调度方面的操作,比如控制内存访问等

单核CPU:
一般一块传统意义的CPU上会有一个PU、一个AS。

多核CPU
这里说的多核,是多个物理核,比如i3的双核,i5的4核。这中架构下,每一个物理核都有一个PU和一个AS

超线程技术(HT)
超线程(HT)并不是我们一般说的多线程。一般说的多线程(multi-threading)是指程序方面的,简单的说就是'软'的,代码级别的。而超线程一般指的是硬件架构方面的,是'硬'的:通过调整AS而模拟出来的'逻辑核'。
也就是说,超线程是一个物理核里面,有两个AS,一个PU。两个AS共享一个PU

你可能感兴趣的:(OS)