以一台 Linux 服务器为例。这台 Linux 包括两颗 Intel(R) Xeon(R) CPU E5-2630 v4 @ 2.20GHz CPU, 单颗 CPU 包括 10 个 cpu core, 使用超线程包含 20 个逻辑 cpu core, 具体的官方介绍: E5-2630 V4。
下面让我们通过 Linux 的命令来查找对应的参数,看看是否符合官方的介绍,主要是查看 /proc/cpuinfo 的信息获得。

CPU型号

  1. cat /proc/cpuinfo | grep 'model name' | sort | uniq
  2. model name : Intel(R) Xeon(R) Gold 5218R CPU @ 2.10GHz

CPU颗数

实际 Server 中插槽上的 CPU 个数,物理 cpu 数量,可以数不重复的 physical id 个数。

  1. cat /proc/cpuinfo | grep 'physical id' | sort | uniq | wc -l
  2. 2

CPU物理核数

每个cpu对应的物理核心数

  1. grep 'cpu cores' /proc/cpuinfo|uniq
  2. cpu cores : 20

逻辑CPU数 siblings

  1. grep siblings /proc/cpuinfo |uniq
  2. siblings : 40

超线程

  1. #1 查看lscpu
  2. Thread(s) per core: 2
  3. #2 查看/proc/cpuinfo 的物理核数和逻辑核数

如果“siblings”和“cpu cores”一致,则说明不支持超线程,或者超线程未打开。如果“siblings”是“cpu cores”的两倍,则说明支持超线程,并且超线程已打开。如果有两个逻辑CPU具有相同的”core id”,那么超线程是打开的。

逻辑CPU核数

一般情况,我们认为一颗 cpu 可以有多核,加上 intel 的超线程技术 (HT), 可以在逻辑上把一个物理线程模拟出两个线程来使用,使得单个核心用起来像两个核一样,以充分发挥 CPU 的性能。
逻辑 CPU 数量 = 物理 cpu 数量 x cpu cores 这个规格值 x 2(如果支持并开启超线程)。

  1. cat /proc/cpuinfo |grep "processor"|wc -l
  2. 80


逻辑cpu数=物理cpu数物理cpu核数(逻辑CPU数/CPU物理核数)=220(40/20)