基础概念
CPU( CentralProcessingUnit): 是计算机系统的运算和控制核心,是信息处理、程序运行的最终执行单元,相当于系统的“大脑”。
物理核(physical core/processor): 可以看的到的,真实的cpu核,有独立的电路元件以及L1,L2缓存,可以独立地执行指令。
逻辑核( logical core/processor,LCPU): 在同一个物理核内,逻辑层面的核。(比喻,像动画片一样,我们看到的“动画”,其实是一帧一帧静态的画面,24帧/s连起来就骗过了人类的眼睛,看起来像动起来一样。逻辑核也一样,物理核通过高速运算,让应用程序以为有两个cpu在运算)。
超线程( Hyper-threading, HT):超线程可以在一个逻辑核等待指令执行的间隔(等待从cache或内存中获取下一条指令),把时间片分配到另一个逻辑核。高速在这两个逻辑核之间切换,让应用程序感知不到这个间隔,误认为自己是独占了一个核。
关系: 一个CPU可以有多个物理核。如果开启了超线程,一个物理核可以分成n个逻辑核,n为超线程的数量。

在操作系统级别,物理四核处理器将显示为4 cpu计算机。但这些将是4个逻辑CPU或非物理LCPU。如果处理器另外提供超线程技术,那么诸如 top 之类的命令将指示系统中有8个cpu,但是在没有超线程的情况下的单个八核处理器性能高于8Lcpu。
如何查询 CPU 信息
在 Linux 系统下,可以从 /proc/cpuinfo 文件中读取 CPU 信息,如下图所示:

**查看 CPU 个数:**主板插槽上(物理封装上)的CPU芯片的个数
cat /proc/cpuinfo | grep ‘physical id’ | sort | uniq | wc -l
**查看 CPU 物理核数:**一颗物理CPU中包含的内核数量(Core)
cat /proc/cpuinfo | grep ‘cpu cores’ | sort | uniq
**查看 CPU 逻辑核数:**通过超线程技术,能将一个物理核分成多个逻辑核
cat /proc/cpuinfo | grep ‘siblings’ | sort | uniq
查看CPU是否支持超线程
若:
siblings = cpu cores 不支持超线程 或 未启用超线程
siblings > cpu cores 支持并已启用超线程
“siblings”指的是一颗物理CPU有几个逻辑核,
“cpu cores”指的是一颗物理CPU有几个物理核。
计算服务器的物理核、逻辑核的总数
服务器的CPU物理核总数 = CPU数量 × 每颗CPU的物理核数(cpu cores)
服务器的CPU逻辑核总数 = CPU数量 × 每颗CPU的逻辑核数(siblings)
本文介绍了CPU的基础概念,包括物理核和逻辑核的区别,超线程技术的工作原理,以及如何在Linux系统下查询CPU的物理核数、逻辑核数以及超线程状态。通过查询`/proc/cpuinfo`文件,可以确定CPU的物理和逻辑核心数量,以及超线程是否启用。

3646

被折叠的 条评论
为什么被折叠?



