概述
一、物理CPU数
机器的主板上实际插入插槽的CPU个数。
二、CPU核数
单块CPU上面集成一个或者多个处理器芯片(称为Core,核心)。
CPU最初发展的时候是一个CPU一个处理核心,CPU的性能主要靠提高核心工作频率来提高,但是仅仅提高单核芯片的速度会产生过多热量且无法带来相应的性能改善。为了提升处理器的能效,于是发展出来了双核心CPU(Dual-core processor)和多核心的CPU(Multi-core processor),在物理上是把2个或者更多的独立处理器芯片封装在一个单一的集成电路中。
三、逻辑CPU数
一般情况下,逻辑cpu=物理cpu个数×cpu核数,如果不相等的话,则表示服务器的CPU支持超线程技术。
简单来说,它可使处理器中的1颗内核如2颗内核那样在操作系统中发挥作用。这样操作系统可使用的执行资源扩大了一倍,大幅提高了系统的整体性能,此时逻辑cpu=物理cpu个数×cpu核数×2
开始的时候CPU是一个核心一个线程,为了进一步提升CPU的处理能力,Intel又引入了HT(Hyper-Threading,超线程)的技术,一个Core打开HT之后,在操作系统看来就是两个核,当然这个核是逻辑上的概念,所以也被称为逻辑处理器(Logical Processor)。“超线程”(Hyperthreading Technology)技术就是通过采用特殊的硬件指令,可以把两个逻辑内核模拟成两个物理超线程芯片,在单处理器中实现线程级的并行计算,同时在相应的软硬件的支持下大幅度的提高运行效能,从而实现在单处理器上模拟双处理器的效能。其实,从实质上说,超线程是一种可以将CPU内部暂时闲置处理资源充分“调动”起来的技术。
top查询的cpu数也是逻辑cpu核数。
查询CPU情况:
-
物理CPU个数:
#cat /proc/cpuinfo | grep “physical id” | sort | uniq | wc -l
-
每个物理CPU中Core的个数:
#cat /proc/cpuinfo | grep “cpu cores” | uniq
-
逻辑CPU个数:
#cat /proc/cpuinfo | grep “processor” | wc -l
是否为超线程?
如果有两个逻辑CPU具有相同的”core id”,那么超线程是打开的。 -
每个物理CPU中逻辑CPU(可能是core, threads或both)的个数:
#cat /proc/cpuinfo | grep “siblings”逻辑CPU个数:cat /proc/cpuinfo | grep “processor” | wc -l
物理CPU个数:cat /proc/cpuinfo | grep “physical id” | sort | uniq | wc -l“siblings”指的是一个物理CPU有几个逻辑CPU
”cpu cores“指的是一个物理CPU有几个核不应该按照flags里是否有 ht 标志来判断系统是否有超线程能力,而应该:
如果“siblings”和“cpu cores”一致,则说明不支持超线程,或者超线程未打开。
如果“siblings”是“cpu cores”的两倍,则说明支持超线程,并且超线程已打开。
最后
以上就是勤劳小鸭子为你收集整理的物理cpu数,逻辑cpu数,cpu核数的全部内容,希望文章能够帮你解决物理cpu数,逻辑cpu数,cpu核数所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复