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是几核(单个物理cpu核数)

[plain]  view plain copy
  1. #cat /proc/cpuinfo |grep "cores"|uniq  
  2. 6   

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




### 查询 Linux 系统CPU 物理逻辑处理器个及缓存大小 #### 获取物理核心数量 为了获取系统物理核心数量,可以利用 `/proc/cpuinfo` 文件中的 `cpu cores` 字段。该字段显示每个物理 CPU 中的核心数目。 ```bash cat /proc/cpuinfo | grep "cpu cores" | uniq ``` 上述命令会返回唯一的一条记录,表明每颗物理 CPU核心数[^2]。 对于整个系统而言,如果存在多颗物理 CPU,则需进一步计算总的物理核心数: ```bash grep -c ^cpu\\scores /proc/cpuinfo ``` 此方法通过计 `cpu cores` 出现次间接得出总物理核心数,不过更精确的方式是结合 `physical id` 来区分不同物理 CPU 并累加各自的核心数。 #### 计算逻辑处理器个 逻辑处理器指的是支持超线程技术的硬件所呈现给操作系统的处理单元总。可以通过如下指令获得逻辑处理器的量: ```bash cat /proc/cpuinfo | grep processor | wc -l ``` 这条命令统计了所有处理器 ID (`processor`) 的量,从而得到逻辑处理器的总目。 #### 探测各级缓存大小 (L1, L2, L3) 针对现代架构下的 Intel AMD 处理器,在 Linux 下可借助 `cpuid` 工具或者读取 `/sys/devices/system/cpu/` 路径下特定于每个 CPU 的属性文件来了解详细的缓存配置信息。然而最简便的方法之一就是使用 `lscpu` 命令,它能够提供关于 CPU 架构的重要细节,包括但不限于缓存层次结构的信息: ```bash lscpu ``` 运行以上命令后可以看到有关 L1d、L1i(据与指令)、L2 及 L3 缓存的具体参。另外也可以直接访问 `/sys/devices/system/cpu/cpu*/cache/index*` 目录下的文件以获取更加细致的据[^4]。 #### 使用 lshw 或 dmidecode 提供更多信息 除了上面提到的方法外,还可以考虑安装并执行 `lshw` 或者 `dmidecode` 这样的工具,它们能给出更为详尽且易于理解的结果,特别是当涉及到 BIOS 层面提供的硬件描述时尤为有用。 ```bash sudo apt-get install lshw # 对于Debian系发行版 sudo yum install lshw # 对于RedHat系发行版 lshw -class cpu # 显示CPU相关信息 ``` 或是: ```bash sudo dmidecode --type processor ``` 这些高级别的实用程序不仅限于展示基本规格,还可能揭示更多隐藏特性或设置选项。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值