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

简介: Linux下区分物理CPU、逻辑CPU和CPU核数㈠ 概念 ① 物理CPU 实际Server中插槽上的CPU个数 物理cpu数量,可以数不重复的 physical id 有几个 ② 逻辑CPU Linux用户对 /proc/cpuinfo 这个文件肯定不陌生. 它是用来存储cpu硬件信息的 信息内容分别列出了processor 0 – n 的规格。

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个数 X 每颗物理CPU的核数

   总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程

 查看物理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信息(型号)
   # cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c

  查看各个物理CPU上面封装的逻辑处理器(即超线程后的CPU)个数
   # cat /proc/cpuinfo | grep siblings

  查看内存大小
   # cat /proc/meminfo | grep -i "memtotal"

 --------------------------------------------------------------
  查看当前操作系统发行版信息
   # cat /etc/issue

  查看cpu运行模式

  # getconf LONG_BIT

   32

 (说明当前CPU运行在32bit模式下, 但不代表CPU不支持64bit)

   # cat /proc/cpuinfo | grep flags | grep ' lm ' | wc -l

         2

   结果大于0, 说明支持64bit计算. lm指long mode, 支持lm则是64bit)

   #lscpu

   Architecture: i686 #架构686
   CPU(s): 2 #逻辑cpu颗数是2
   Thread(s) per core: 1 #每个核心线程数是1
   Core(s) per socket: 2 #每个cpu插槽核数/每颗物理cpu核数是2
   CPU socket(s): 1 #cpu插槽数是1
   Vendor ID: GenuineIntel #cpu厂商ID是GenuineIntel
   CPU family: 6 #cpu系列是6
   Model: 23 #型号23
   Stepping: 10 #步进是10
   CPU MHz: 800.000 #cpu主频是800MHz
   Virtualization: VT-x #cpu支持的虚拟化技术VT-x(对此在下一博文中解释下
   L1d cache: 32K #一级缓存32K(google了下,这具体表示表示cpu的L1数据缓存为32k)
   L1i cache: 32K #一级缓存32K(具体为L1指令缓存为32K)
   L2 cache: 3072K #二级缓存3072k

 查看服务器型号(或者是生产厂家)

  # dmidecode | grep "Product Name" 

   Product Name: VMware Virtual Platform
   Product Name: 440BX Desktop Reference Platform

  # dmidecode -t system

   查看网卡信息

   # dmesg | grep eth1

相关文章
|
存储 缓存
CPU运算器的工作原理基于其内部结构,通过执行算术和逻辑操作来完成各种任务
CPU运算器的工作原理基于其内部结构,通过执行算术和逻辑操作来完成各种任务
951 3
|
10月前
|
监控 测试技术
【YashanDB知识库】YCM上CPU负载超过实际核数是怎么回事
【YashanDB知识库】YCM上CPU负载超过实际核数是怎么回事
|
10月前
|
监控 测试技术
【YashanDB知识库】YCM上CPU负载超过实际核数是怎么回事
【YashanDB知识库】YCM上CPU负载超过实际核数是怎么回事
|
缓存 监控 Linux
在Linux中,如何看当前系统有几颗物理CPU和每颗CPU的核数?
在Linux中,如何看当前系统有几颗物理CPU和每颗CPU的核数?
|
弹性计算 Linux 区块链
Linux系统CPU异常占用(minerd 、tplink等挖矿进程)
Linux系统CPU异常占用(minerd 、tplink等挖矿进程)
547 4
Linux系统CPU异常占用(minerd 、tplink等挖矿进程)
|
监控 Linux
性能分析之 Linux 系统中 ps&top 中 CPU 百分比不一致?
【8月更文挑战第18天】性能分析之 Linux 系统中 ps&top 中 CPU 百分比不一致?
579 5
|
算法 Windows
CAE如何基于CPU最佳核数和token等计算成本
【8月更文挑战第26天】在使用CAE(计算机辅助工程)进行分析计算时,需综合考虑CPU核数和token对成本的影响。CPU核数越多,虽能加速计算,但过多核数会因通信开销和内存带宽限制导致性能提升放缓。成本计算需考虑硬件租赁或购买费用及云服务收费标准。Token作为软件许可,需分摊到每次计算中。通过测试优化找到性能与成本的平衡点,实现最低成本下的高效计算。
299 1
|
缓存 Linux 虚拟化
linux 查看服务器cpu 与内存配置
linux 查看服务器cpu 与内存配置
1751 4
|
Linux 数据处理
Linux中的nproc命令:轻松查看系统CPU核心数
`nproc`命令在Linux中用于查看CPU核心数,简洁高效,无参数直接运行。它读取`/proc/cpuinfo`获取信息,适用于资源分配。例如,`nproc`显示核心数,`nproc --all`(非标准选项,可能需结合其他命令)展示更多详情。在脚本中,可将`nproc`输出赋值给变量以适应动态资源管理。使用时注意文件访问权限,检查结果准确性,并结合其他工具如`lscpu`获取更全面硬件信息。
|
Linux Windows
获取cpu的核数
文章介绍了在不同操作系统上查看服务器CPU核数和线程数的多种方法,包括Windows系统使用命令窗口、任务管理器和WMIC命令,以及Linux系统使用`cat /proc/cpuinfo`和`lscpu`命令。

热门文章

最新文章