🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
[TOC] ## 查看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的核数 × 超线程数。 所以这算双核的。