CPU、物理核、逻辑核概念与关系
文章将解答如下问题
- 一个物理核可以分成两个逻辑核,是吗?
- 我们常说的电脑是8核的,服务器是64核的,指的是逻辑核,还是物理核?
- 怎么查看Linux服务器的物理核、逻辑核数?
基础概念
CPU(Central Processing Unit): 中央处理单元,CPU != 物理核,更 != 逻辑核。
物理核(physical core/processor): 可以看的到的,真实的cpu核,有独立的电路元件以及L1,L2缓存,可以独立地执行指令。
逻辑核(logical core/processor): 在同一个物理核内,逻辑层面的核。(比喻,像动画片一样,我们看到的“动画”,其实是一帧一帧静态的画面,24帧/s连起来就骗过了人类的眼睛,看起来像动起来一样。逻辑核也一样,物理核通过高速运算,让应用程序以为有两个cpu在运算)。
超线程(Hyper-threading, HT):超线程可以在一个逻辑核等待指令执行的间隔(等待从cache或内存中获取下一条指令),把时间片分配到另一个逻辑核。高速在这两个逻辑核之间切换,让应用程序感知不到这个间隔,误认为自己是独占了一个核。
关系: 一个CPU可以有多个物理核。如果开启了超线程,一个物理核可以分成n个逻辑核,n为超线程的数量。
Linux查看cpu信息
cat /proc/cpuinfo
...
processor : 23 // 逻辑核编号
cpu MHz : 2299.863 // CPU主频
cache size : 15360 KB // L2 cache大小
physical id : 1 // CPU编号
siblings : 12 // 一颗CPU中有多少逻辑核
core id : 5 // CPU的物理核编号
cpu cores : 6 // 一颗CPU中有多少物理核
...
针对于上边的这个服务器,我们说,它有2颗CPU,每颗CPU中有6个物理核,CPU开启了超线程,每颗CPU中有12个逻辑核。所以,这台服务器共有12个物理核,24个逻辑核。我们通常意义上说的24核,是指逻辑核是24个。
延伸阅读
CPU架构的简要演进,为什么会有双核、多核CPU,可以看这篇文章 http://www.daniloaz.com/en/differences-between-physical-cpu-vs-logical-cpu-vs-core-vs-thread-vs-socket/
网友评论