CPU相关概念及如何在Linux中查看CPU信息

时间:2024-03-20 07:13:26

一、CPU相关概念

1、物理CPU

  • 物理cpu就是计算机上实际安装的cpu,物理cpu数就是主板上实际插入的CPU数量。
  • 在Linux上查看/proc/cpuinfo,其中的physical id就是每个物理cpu的id,有几个不同的physical id就有几个物理cpu。

2、物理CPU内核

  • 每颗物理CPU可以有1个或者多个物理内核,通常每颗物理CPU的内核数都是固定的,单核CPU就是有1个物理内核,双核CPU就是有2个物理内核。
  • 在Linux上查看/proc/cpuinfo,其中的core id就是每颗物理CPU的物理内核id,有几个不同的core id就有几个物理内核。
  • 总的CPU物理内核数 = 物理CPU数 * 每颗物理CPU的内核数。

3、逻辑CPU

  • 操作系统可以使用逻辑CPU来模拟真实CPU。在没有多核处理器时,一个物理CPU只能有一个物理内核。现在有了多核技术,一个物理CPU可以有多个物理内核,可以把一个CPU当做多个CPU使用,也就是所谓的逻辑CPU。
  • 没有开启超线程的时,逻辑CPU的个数就是总的CPU物理内核数。
  • 开启超线程后,逻辑CPU的个数就是总的CPU物理内核数的两倍。
  • 在Linux查看/proc/cpuinfo/,其中的processor就是逻辑CPU,有几个processor就有几个逻辑CPU。
  • 总的逻辑CPU数 = 物理CPU个数 * 每颗物理CPU的核数 * 超线程数。

  • 总的逻辑CPU数 = 总的物理CPU内核数 * 超线程数。

4、几核几线程

  • 如果计算机有一个物理CPU,且是双核的,支持超线程,那么这台计算机就是双核四线程。实际上几核几线程中的线程数就是逻辑CPU数。
  • 对于两路四核超线程计算机,两路指计算机有2个物理CPU,每颗CPU中有4个物理内核,CPU支持超线程,就有2 * 4 * 2 = 16个逻辑CPU,这就是通常所谓的16核计算机。

二、Linux中查看物理CPU、物理内核、逻辑CPU命令

1、查看物理CPU个数

grep 'physical id' /proc/cpuinfo | uniq | wc -l

2、查看每个物理CPU核心数

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

3、查看逻辑CPU的个数

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

三、CPU架构

1、多个物理CPU

CPU通过总线进行通信,效率比较低,如下:
CPU相关概念及如何在Linux中查看CPU信息

2、多核CPU

多核CPU,不同的核通过L2 Cache进行通信,存储和外设通过总线与CPU通信,如下:
CPU相关概念及如何在Linux中查看CPU信息

3、多核超线程

每个核有两个逻辑处理单元,两个核共享一个核的资源,如下:
CPU相关概念及如何在Linux中查看CPU信息