如何查看Linux服務器的物理CPU、邏輯CPU和CPU核數

Linux/UNIX下的哲學核心思想是'一切皆文件'。硬件信息也記錄在了文件中。
經過cat /proc/cpuinfo 來查看CPU相關詳細信息。bash

  • 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

實際物理機中插槽上的CPU個數。ui

即物理CPU數量,能夠數不重複的 physical id 有幾個,查看方法線程

grep "physical id" /proc/cpuinfo | sort | uniq | wc -l

CPU核數

單塊CPU上面能處理數據的芯片組的數量即CPU核數,如雙核、四核等 (cpu cores)。
。通常來講,物理CPU個數×每顆核數就應該等於邏輯CPU的個數;若是不相等的話,則表示服務器的CPU支持超線程技術 code

cat /proc/cpuinfo | grep "cpu cores" | uniq
grep "cpu cores" /proc/cpuinfo | uniq | awk -F ":" "{print $2}"

邏輯CPU

Linux用戶對 /proc/cpuinfo 這個文件確定不陌生。它是用來存儲CPU硬件信息的
信息內容分別列出了processor 0 – n 的規格。這裏須要注意,若是你認爲n就是真實的CPU數的話, 就大錯特錯了。字符串

通常狀況,咱們認爲一顆CPU能夠有多核,加上intel的超線程技術(Hyper-Threading), 能夠在邏輯上再分一倍數量的cpu core出來
邏輯CPU數量=物理CPU數量 x cpu cores 這個規格值 x 2(若是支持並開啓ht)class

若是有一個以上邏輯處理器擁有相同的 core id 和 physical id,則說明系統支持超線程(HT)技術awk

備註一下:Linux下top查看的CPU也是邏輯CPU個數。硬件

cat /proc/cpuinfo | grep "processor" | wc -l
相關文章
相關標籤/搜索