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

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

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

㈠ 概念

           ① 物理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)

              备注一下:Linux下top查看的CPU也是逻辑CPU个数              

           ③ CPU核数           

              一块CPU上面能处理数据的芯片组的数量、比如现在的i5 760,是双核心四线程的CPU、而 i5 2250 是四核心四线程的CPU              

              一般来说,物理CPU个数×每颗核数就应该等于逻辑CPU的个数,如果不相等的话,则表示服务器的CPU支持超线程技术    

㈡ 查看CPU信息          

          vendor id     如果处理器为英特尔处理器,则字符串是 GenuineIntel。

          processor     包括这一逻辑处理器的唯一标识符。

          physical id   包括每个物理封装的唯一标识符。

          core id       保存每个内核的唯一标识符。

          siblings      列出了位于相同物理封装中的逻辑处理器的数量。

          cpu cores     包含位于相同物理封装中的内核数量。

         1. 拥有相同 physical id 的所有逻辑处理器共享同一个物理插座,每个 physical id 代表一个唯一的物理封装。

         2. Siblings 表示位于这一物理封装上的逻辑处理器的数量,它们可能支持也可能不支持超线程(HT)技术。

         3. 每个 core id 均代表一个唯一的处理器内核,所有带有相同 core id 的逻辑处理器均位于同一个处理器内核上。简单的说:“siblings”指的是一个物理CPU有几个逻辑                      CPU,”cpu cores“指的是一个物理CPU有几个核。

         4. 如果有一个以上逻辑处理器拥有相同的 core id 和 physical id,则说明系统支持超线程(HT)技术。

         5. 如果有两个或两个以上的逻辑处理器拥有相同的 physical id,但是 core id不同,则说明这是一个多内核处理器。cpu cores条目也可以表示是否支持多内核。

      

㈢ 下面举例说明

        ① 查看物理CPU的个数

 

[plain] 
view plain
copy

 
 
 

  1. #cat /proc/cpuinfo |grep “physical id”|sort |uniq|wc -l  
  2. 2  

        ② 查看逻辑CPU的个数

 

 

[plain] 
view plain
copy

 
 
 

  1. #cat /proc/cpuinfo |grep “processor”|wc -l  
  2. 24  

        ③ 查看CPU是几核

 

 

[plain] 
view plain
copy

 
 
 

  1. #cat /proc/cpuinfo |grep “cores”|uniq  
  2. 6   

 我这里应该是2个CPU,每个CPU有6个core,应该是Intel的CPU,支持超线程,所以显示24 

转载于:https://www.cnblogs.com/gaoyuechen/p/9051940.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/101657.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Mybatis分页查询(通过SQL分页实现)[通俗易懂]

    Mybatis分页查询(通过SQL分页实现)[通俗易懂]Mybatis分页查询(通过SQL分页实现)前言实现有哪几种方式:网页分页(一次查询所有数据,加载到网页,那么适合数量小的操作)服务器端分页java程序中查询所有数据,网页需要哪一页,就给哪一页数据,会撑爆java服务器,建议查询缓存优化数据库分页请求一页数据,查询数据库即可本文采用Oracle中的rownum实现分页,数据表使用Oracle中Scott的EMP表一、搭建环境目录结构导入jar包mybatis-3.2.7.jarojdbc6.jar数

    2022年5月8日
    119
  • Camstar CDO增加自定义字段

    Camstar CDO增加自定义字段本节讲述如何在Camstar原生CDO里加入自定义字段进入Designer,打开CDO页,找到要增加字段的CDO,打开,切换到Fields页,点击下面的Add按钮。在弹出的窗口中,输入相应的数据:DataType增加的字段的数据类型,字符串、整数、浮点数、Object等FieldType字段类型,描述字段的具体用处,不同类型的数据字段长度是不同的(比如字符串的长度)Name字段名称,也是数据库表里的默认字段名称Caption字段描述,也是在Modeling配置页面里对应字段的名称点

    2022年10月29日
    0
  • Codeblocks中文字体反转[通俗易懂]

    Codeblocks中文字体反转[通俗易懂]codeblocks输入中文字体,出现这样的情况:属于字体的设置问题,将字体栏中的@符号去掉即可。

    2022年7月14日
    17
  • 干货满满 | 5个信号,说明你的面试基本“折了”

    干货满满 | 5个信号,说明你的面试基本“折了”

    2022年2月14日
    47
  • mysql 分区键_mysql分区

    mysql 分区键_mysql分区分区就访问数据库的应用而言,逻辑上只有一个表或一个索引,但是实际上这个表可能由数10个物理分区对象组成,每个分区都是一个独立的对象,可以独自处理,可以作为表的一部分进行处理。分区对应用来说是完全透明的,不影响应用的业务逻辑创建分区,是对数据表,和索引表,同时创建分区的。不能分别创建分区;同时也不能对部分数据进行分区;分区在创建完成之后,管理员也无法动态更改;mysql分区的优点主要包括:和单个磁盘…

    2022年4月27日
    34
  • 转:MFC之COleVariant[通俗易懂]

    转:MFC之COleVariant[通俗易懂]COleVariant本质上是一个枚举,用同一种类型来表达不同的子类型。如同boost中的variant。例子[cpp]viewplaincopyCOleVariantvar(3.6f);floatv=var.fltVal;CStringstr(“testCOleVariant”);COleVariantvar2(st…

    2022年7月18日
    11

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号