Linux下区分物理CPU、逻辑CPU和CPU核数

来源:互联网 发布:avr单片机教程 郭天祥 编辑:程序博客网 时间:2024/05/22 17:24
Linux下区分物理CPU、逻辑CPU和CPU核数
 
 ㈠ 概念
             www.2cto.com  
           ① 物理CPU 
              
              实际Server中插槽上的CPU个数
              物理cpu数量,可以数不重复的 physical id 有几个
           
           ② 逻辑CPU 
              
              Linux用户对 /proc/cpuinfo 这个文件肯定不陌生. 它是用来存储cpu硬件信息的
              信息内容分别列出了processor 0 – n 的规格。这里需要注意,如果你认为n就是真实的cpu数的话, 就大错特错了
              一般情况,我们认为一颗cpu可以有多核,加上intel的超线程技术(HT), 可以在逻辑上再分一倍数量的cpu core出来
              逻辑CPU数量=物理cpu数量 x cpu cores 这个规格值 x 2(如果支持并开启ht)  www.2cto.com  
              备注一下:Linux下top查看的CPU也是逻辑CPU个数
              
           ③ CPU核数
           
              一块CPU上面能处理数据的芯片组的数量、比如现在的i5 760,是双核心四线程的CPU、而 i5 2250 是四核心四线程的CPU
              
           一般来说,物理CPU个数×每颗核数就应该等于逻辑CPU的个数,如果不相等的话,则表示服务器的CPU支持超线程技术 
           
       ㈡ 查看CPU信息
          
          当我们 cat /proc/cpuinfo 时、
          具有相同core id的CPU是同一个core的超线程
          具有相同physical id的CPU是同一个CPU封装的线程或核心
              
        
       ㈢ 下面举例说明
     
        ① 查看物理CPU的个数
[plain] 
#cat /proc/cpuinfo |grep "physical id"|sort |uniq|wc -l  
2  
 
        ② 查看逻辑CPU的个数
[plain] 
#cat /proc/cpuinfo |grep "processor"|wc -l  
24  
 
        ③ 查看CPU是几核
[plain] 
#cat /proc/cpuinfo |grep "cores"|uniq  
6   
 
       我这里应该是2个Cpu,每个Cpu有6个core,应该是Intel的U,支持超线程,所以显示24 
虽然采用超线程技术能同时执行两个线程,但它并不象两个真正的CPU那样,每个CPU都具有独立的资源。当两个线程都同时需要某一个资源时,其中一个要暂时停止,并让出资源,直到这些资源闲置后才能继续。因此超线程的性能并不等于两颗CPU的性能。
0 0