文章目录

一个物理CPU可以有1个或者多个物理内核,

一个物理内核可以作为1个或者2个逻辑CPU(开启超线程就是2个)

1. 物理CPU

物理CPU就是计算机上实际安装的CPU,主板上实际插入的CPU数量。

cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l

其中的physical id就是每个物理CPUid,有几个不同的physical id就有几个物理CPU

uniq是为了去掉多个逻辑CPU属于同一个物理CPU的重复记录。

2. 物理CPU内核

就是核心数,我们常常会听说多核处理器,其中的核指的就是核心数。通常每颗物理CPU的内核数都是固定的,单核CPU就是有1个物理内核,双核CPU就是有2个物理内核。

cat /proc/cpuinfo | grep 'core id' | uniq | wc -l

总的CPU物理内核数 = 物理CPU数 * 每颗物理CPU的内核数

3. 逻辑CPU

得力于多核技术,一个物理CPU可以有多个物理内核,可以把一个CPU当作多个CPU使用,为了与物理CPU区分开来,称其为逻辑CPU。没有开启超线程时,逻辑CPU的个数就是总的CPU物理内核数;开启超线程后,逻辑CPU的个数就是总的CPU物理内核数的两倍。

cat /proc/cpuinfo | grep 'processor' | wc -l

4. 超线程

超线程是英特尔开发出来的一项技术,使得单个处理器可以象两个逻辑处理器那样运行,这样单个处理器以并行执行线程。这里的单个处理器也可以理解为CPU的一个核心;这样便可以理解为什么开启了超线程技术后,逻辑CPU的数目是核心数的两倍了。

如果支持超线程就是说同一个core下会有两个processors。另外,top命令中看到的CPU数目是逻辑CPU(输入top后再按1)。

5. 几核几线程

如果计算机有一个物理CPU,是双核的,支持超线程。那么这台计算机就是双核四线程。
实际上几核几线程中的线程数就是逻辑CPU数。

对于两路四核超线程计算机,两路指计算机有2个物理CPU,每颗CPU中有4个物理内核,CPU支持超线程,就有2*4*2=16个逻辑CPU,这就是通常所谓的16核计算机。

6. 补充

查看CPU的主频

cat /proc/cpuinfo | grep MHz | uniq

直接获得CPU核心数

grep 'model name' /proc/cpuinfo | wc -l