linux 物理cpu、cpu核数、逻辑cpu

在linux系统中,提供了proc系统显示系统的软硬件信息,可以使用命令 cat /proc/cpuinfo 来查看

1. 查看物理CPU(机器的主板上实际插入插槽的 CPU )个数
cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l

2. 查看每个物理CPU中core的个数(即核数(单块 CPU 上面能处理数据的芯片组的数量,如双核、四核等 (cpu cores 核心)))
cat /proc/cpuinfo| grep "cpu cores"| uniq

  • 一个进程可以包含多个线程,多个进程就有更多的线程。当CPU只有一个物理核心时,同一时间只能运行一个线程,对多线程是通过分时处理,不断地切换运行线程,来达到宏观上“同时”运行多个线程的目的
  • 多个核心就能同时运行多个线程,只要线程数不大于核心数,就不需要分时处理,是真正的同时。实际上桌面系统中,启动时就会运行上百个进程,线程数量更多。不过大部分线程处于等待和休眠状态,不消耗CPU时间,大部分桌面用户只需要一个“前台”程序流畅运行,因此桌面CPU只要有1~8个核心就可以很好地满足要求。
  • 超线程是把一个物理核心分成多个逻辑核心的技术。一个物理核心中有很多种不同类型的处理单元,比如计算加法的、计算除法的、访问内存的、处理分支跳转的……没有任何指令流可以使所有类型的单元都同时满负载。为了把空闲的单元利用起来,就把一个物理核心变成一到多个逻辑核心,每个逻辑核心可以运行不同的线程,提高了物理核心的利用率。
  • CPU的单核性能等于“频率×IPC”,IPC是每个时钟周期可以执行指令的数量。由于每条指令所需的时钟周期不一定相同,IPC通常是指运行测试程序得到的平均值。现代CPU由于增加了乱序执行、分支预测等等技术,IPC的波动就更大。现在通常使用SPEC CPU等程序评估(测试)CPU性能,把单核的得分换算成1GHz频率时的成绩称为PPC,也可以仍然称为IPC。两款CPU如果PPC(IPC)一样,那么肯定是频率越高越好,否则就不能单独比较GHz谁更大。
  • PPC和IPC可以用于衡量CPU核心的设计水平,而CPU频率既被核心逻辑设计影响,更受后端设计的布局布线和生产工艺影响。奔腾(Pentium)4的PPC(IPC)不到11代酷睿的1/5,因此在相同频率下奔腾(Pentium)4的[单核性能不到11代酷睿的1/5。在这种情况下,11代酷睿只需要800MHz的频率,单核心就能比4.0GHz的奔腾(Pemtium)4更快。
  • 现代CPU仍然可以继续提高频率,但在技术没有革新之前,边际效应会造成提高频率的代价远远高于收获。比如高昂的CPU研发成本、高昂的工艺研发成本、高频率带来的高功耗问题……都会大幅度提高产品成本和使用成本。CPU的PPC(IPC)也已经触摸到了边际,要不然英特尔也不会挤那么多年的牙膏,现在又做出大小核的妥协。

3. 查看逻辑CPU(决定了服务器并行(同时)处理任务的能力)的个数
cat /proc/cpuinfo| grep "processor"| wc -l

  • 一般情况下,逻辑cpu = 物理cpu个数 × cpu核数,如果不相等的话,则表示服务器的 CPU 支持超线程技术
  • 超线程技术:简单来说,它可使处理器中的1颗内核如2颗内核那样在操作系统中发挥作用。这样操作系统可使用的执行资源扩大了一倍,大幅提高了系统的整体性能,此时逻辑cpu=物理cpu个数×cpu核数×2。
  • 开始的时候CPU是一个核心一个线程,为了进一步提升CPU的处理能力,Intel又引入了HT(Hyper-Threading,超线程)的技术,一个Core打开HT之后,在操作系统看来就是两个核,当然这个核是逻辑上的概念,所以也被称为逻辑处理器(Logical Processor)。“超线程”(Hyperthreading Technology)技术就是通过采用特殊的硬件指令,可以把两个逻辑内核模拟成两个物理超线程芯片,在单处理器中实现线程级的并行计算,同时在相应的软硬件的支持下大幅度的提高运行效能,从而实现在单处理器上模拟双处理器的效能。其实,从实质上说,超线程是一种可以将CPU内部暂时闲置处理资源充分“调动”起来的技术。

你可能感兴趣的:(linux 物理cpu、cpu核数、逻辑cpu)