查看cpu信息

$ cat /proc/cpuinfo

物理CPU

物理CPU就是计算机上实际配置的CPU个数。
在linux上可以打开cat /proc/cpuinfo 来查看,其中的physical id就是每个物理CPU的ID,能找到几个physical id就代表计算机实际有几个CPU。

在linux下可以通过指令 grep ‘physical id’ /proc/cpuinfo | sort -u | wc -l 来查看物理CPU个数。

$ grep 'physical id' /proc/cpuinfo | sort -u | wc -l

1

cpu核数

linux的cpu核心总数也可以在/proc/cpuinfo里面通过指令cat /proc/cpuinfo查看的到,其中的core id指的是每个物理CPU下的cpu核的id,能找到几个core id就代表计算机有几个核心。

物理核

物理核数=cpu数(机子上装的cpu的数量)*每个cpu的物理核数

$ grep 'core id' /proc/cpuinfo | sort -u | wc -l

4

虚拟核

所谓的4核8线程,4核指的是物理数。通过超线程技术,用一个物理核 模拟两个虚拟核,每个虚拟核1个线程,总数为8线程。
在操作系统看来是8个核,但是实际上是4个物理核。
通过超线程技术可以实现单个物理核实现线程级别的并行计算,但是比不上性能两个物理核。

逻辑CPU

操作系统可以使用逻辑CPU来模拟出真实CPU的效果。在之前没有多核处理器的时候,一个CPU只有一个核,而现在有了多核技术,其效果就好像把多个CPU集中在一个CPU上。

当计算机没有开启超线程时,逻辑CPU的个数就是计算机的核数。而当超线程开启后,逻辑CPU的个数是核数的两倍。

$ grep 'processor' /proc/cpuinfo | sort -u | wc -l

8

8/4/1 = 2 看来已经开启了超线程
逻辑CPU的数量/物理核的数量/cpu核数 = 2 则开启了超线程

线程数量

实际上逻辑CPU的数量就是平时称呼的几核几线程中的线程数量,在linux的cpuinfo中逻辑CPU数就是processor的数量。

单核cpu和多核cpu

都是一个cpu,不同的是每个cpu上的核心数
多核cpu是多个单核cpu的替代方案,多核cpu减小了体积,同时也减少了功耗
一个核心只能同时执行一个线程

总结

1.物理cpu数:主板上实际插入的cpu数量,可以数不重复的 physical id 有几个(physical id)

$ grep 'physical id' /proc/cpuinfo | sort -u | wc -l

2.cpu核数:单块CPU上面能处理数据的芯片组的数量,如双核、四核等 (cpu cores)

$ grep 'core id' /proc/cpuinfo | sort -u | wc -l

3.逻辑cpu数:简单来说,它可使处理器中的1颗内核,如2颗内核那样在操作系统中发挥作用。

$ cat /proc/cpuinfo | grep 'cpu cores' | wc -l

这样一来,操作系统可使用的执行资源扩大了一倍,大幅提高了系统的整体性能,此时逻辑cpu=物理CPU个数×每颗核数x2。

总核数 = 物理CPU个数 × 每颗物理CPU的核数。总逻辑CPU数 = 物理CPU个数 ×每颗物理CPU的核数 × 超线程数。

所以这算双核的。

--完--