「關於這台電腦」和 /cpu/cpuinfo 中的 CPU 編號不同

「關於這台電腦」和 /cpu/cpuinfo 中的 CPU 編號不同

問題:

我想問一下是什麼原因導致處理器數量有兩個不同的資訊?請參閱下面的報告。

系統對話框:

如果開啟系統設定/詳細資料標籤(與登出輪和關於此電腦相同),我會收到以下報告:

處理器:Intel® Xeon(R) CPU E5-2680 v3 @ 2.50GHz × 16


CLI:CPU資訊 (1)

儘管如此,使用命令列命令,我得到以下結果:

$ cat /proc/cpuinfo | grep processor | wc -l
24

我傾向於相信命令列報告 - 但什麼可能導致它們不同?

僅供參考:系統監視器還顯示 24 個核心的統計信息


CLI:CPU資訊 (2)

根據評論中的建議,我還運行了以下命令行

$ cat /proc/cpuinfo |grep 'core id'|sort|uniq|wc -l
12

所以現在我甚至有了第三個結果!這是有道理的,因為機器中可能有 12 個核心和 2 個處理器 - 但係統對話框計數怎麼可能是 16?

答案1

我認為 CPU 核心與對稱多處理相關的最佳解釋(界面活性劑)。

在此輸入影像描述

英特爾酷睿 2 雙核心顯示實體佈局的圖表。 在此輸入影像描述


系統的CPU資訊儲存在該/proc目錄中。它可以透過lscpu軟體整齊地呈現出來,如下所示。我舉了三個例子來比較:一個有 2 個 CPU 核心的桌上型電腦、一個有 48 個 CPU 核心的伺服器和一個有 4 個 CPU 核心的 Raspberry Pi。

桌上型電腦
使用者@主機名稱:~$ lscpu
架構:x86_64
CPU 操作模式:32 位元、64 位元
位元組順序:小端
CPU:2
線上 CPU 清單:0,1
每核線程:1
每個插槽的核心數:2
插座:1
NUMA 節點:1
供應商 ID:GenuineIntel
CPU系列:6
型號:60
步數:3
CPU兆赫:800.000
博戈MIPS:5586.94
虛擬化:VT-x
一級快取:32K
一級快取:32K
二級快取:256K
三級快取:2048K
NUMA 節點 0 CPU:0,1

伺服器
使用者@主機名稱%lscpu
架構:x86_64
CPU 操作模式:32 位元、64 位元
位元組順序:小端
CPU:48
線上 CPU 清單:0-47
每核線程:2
每個插槽的核心數:12
插座:2
NUMA 節點:1
供應商 ID:GenuineIntel
CPU系列:6
型號:62
步數:4
CPU兆赫:1799.724
博戈MIPS:3600.09
虛擬化:VT-x
一級快取:32K
一級快取:32K
二級快取:256K
三級快取:30720K
NUMA 節點 0 CPU:0-47

樹莓派
傑夫@clear-pi:~ $ lscpu
架構:armv7l
位元組順序:小端
CPU:4
線上 CPU 清單:0-3
每核線程:1
每個插槽的核心數:4
插座:1
型號名稱:ARMv7 處理器版本 5 (v7l)
CPU 最大 MHz:900.0000
CPU 最低 MHz:600.0000

伺服器總數為 48,但必須乘以 3 個數字才能達到該數字:2*12*2=48。透過這種方式比較,CPU 製造商的安排差異很明顯。

桌面
[每個核心的執行緒:1] * [每個插槽的核心:1] * [插槽:1] = 2

伺服器
[每個核心的執行緒:2] * [每個插槽的核心:12] * [插槽:2] = 48

樹莓派
[每個核心的執行緒:1] * [每個插槽的核心:4] * [插槽:1] = 4  

lshw有更多系統信息,但在這裡不太有用。

桌上型電腦
使用者@主機名稱:~$ sudo lshw
     *-中央處理器
          說明:CPU
          產品:Intel(R) 賽揚(R) CPU G1840 @ 2.80GHz
          供應商:英特爾公司
          物理 ID:9
          總線資訊:cpu@0
          版本:Intel(R) Celeron(R) CPU G1840 @ 2.80GHz
          插槽:插座0
          尺寸:2800MHz
          容量:3800MHz
          寬度:64 位元
          時脈:100MHz

伺服器
使用者@主機名稱% sudo lshw
     *-CPU:0
          說明:CPU
          產品:Intel(R) Xeon(R) CPU E5-2651 v2 @ 1.80GHz
          供應商:英特爾公司
          物理 ID:4
          總線資訊:cpu@0
          版本:Intel(R) Xeon(R) CPU E5-2651 v2 @ 1.80GHz
          插槽:插座0
          尺寸:1800MHz
          容量:4GHz
          寬度:64 位元
          時脈:100MHz

樹莓派
使用者@主機名稱:~ $ sudo lshw
*-CPU:0
          說明:CPU
          產品: 中央處理器
          物理 ID:0
          總線資訊:cpu@0
          尺寸:900MHz
          容量:900MHz
          功能:CPU頻率

最後,這個方法對我來說在幾個不同的 Linux/UNIX 作業系統上都有效,其中 lscpu 不可用。這是問題和評論中建議的內容的變體,但我更喜歡簡寫命令和簡單的輸出。

user@hostname:~ $ grep -c ^processor /proc/cpuinfo
4

參考:如何找到CPU核心數(包含虛擬核心數)?

參考:https://stackoverflow.com/questions/6481005/how-to-obtain-the-number-of-cpus-cores-in-linux-from-the-command-line

參考:https://stackoverflow.com/questions/19225859/difference- Between-core-and-processor

相關內容