文章目录
一个物理CPU可以有1个或者多个物理内核,
一个物理内核可以作为1个或者2个逻辑CPU(开启超线程就是2个)
1. 物理CPU
物理CPU
就是计算机上实际安装的CPU
,主板上实际插入的CPU数量。
cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l
其中的physical id
就是每个物理CPU
的id
,有几个不同的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