Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> Linux 教學

Linux 系統查看 CPU 核心數、物理 CPU 數與超線程技術詳解

編輯:Linux 教學

核心命令速查

# 查看完整 CPU 信息
cat /proc/cpuinfo

# 僅統計邏輯 CPU 數量(處理器編號數)
grep -c ^processor /proc/cpuinfo

# 查看物理 CPU 數量(去重 physical id)
grep 'physical id' /proc/cpuinfo | sort -u | wc -l

# 查看每顆物理 CPU 的核心數
grep 'cpu cores' /proc/cpuinfo | uniq

# 判斷是否支持超線程(HT)
grep -q 'ht' /proc/cpuinfo && echo "支持超線程" || echo "不支持超線程"

關鍵字段詳細解讀

字段含義用途
processor邏輯處理器編號(從 0 開始)統計邏輯 CPU 總數
physical id物理封裝 ID相同值 = 同一顆物理 CPU;去重計數 = 物理 CPU 數
core id核心 ID同一 physical id 下不同 core id = 多核心
cpu cores每顆物理 CPU 的核心數直接顯示核心數
siblings同一物理 CPU 下的邏輯處理器數siblings > cpu cores 表示開啟超線程
flagsCPU 特性標志含 ht 表示支持超線程技術

實戰分析示例

假設 /proc/cpuinfo 輸出片段如下:

processor	: 4
physical id	: 9
core id		: 19
cpu cores	: 2
siblings	: 4
flags		: ... ht ...

processor	: 5
physical id	: 9
core id		: 19
cpu cores	: 2
siblings	: 4
flags		: ... ht ...

分析結論:

  • 物理 CPU 數:1 顆(physical id 均為 9)
  • 每顆物理 CPU 核心數:2 個(cpu cores = 2)
  • 邏輯 CPU 數:4 個(siblings = 4,且 processor 4~7 共 4 個)
  • 超線程狀態:已開啟(siblings=4 > cpu cores=2,且 flags 含 ht)

超線程技術深度解析

什麼是超線程?

超線程技術通過特殊硬件指令,在單個物理核心內模擬兩個邏輯核心,使單核心能同時執行兩個線程,提高 CPU 利用率。

核心原理

  • 資源共享:ALU(整數運算)、FPU(浮點運算)、L2/L3 Cache 等核心資源由兩邏輯核心共享
  • 獨立狀態:每個邏輯核心擁有獨立的架構狀態(寄存器、程序計數器等)
  • 面積代價:僅增加約 5% 的晶片面積(主要為邏輯處理單元指針)

性能特性

場景性能表現說明
多線程並行負載提升 15%~30%充分利用閒置執行單元
單線程負載可能略微下降資源爭用導致管線停頓
浮點密集型計算提升有限FPU 為共享資源,易成瓶頸

運行模式

  • Single Task Mode:單線程程序運行時,關閉一個邏輯核心,資源集中於另一核心
  • Multi Task Mode:多線程並行時,雙邏輯核心同時工作

一鍵腳本:快速獲取 CPU 拓撲信息

#!/bin/bash
echo "=== CPU 拓撲信息 ==="
echo "物理 CPU 數: $(grep 'physical id' /proc/cpuinfo | sort -u | wc -l)"
echo "每顆核心數: $(grep 'cpu cores' /proc/cpuinfo | uniq | awk '{print $4}')"
echo "邏輯 CPU 數: $(grep -c ^processor /proc/cpuinfo)"
echo "超線程支持: $(grep -q 'ht' /proc/cpuinfo && echo '是' || echo '否')"
echo "超線程啟用: $( [ $(grep 'siblings' /proc/cpuinfo | uniq | awk '{print $3}') -gt $(grep 'cpu cores' /proc/cpuinfo | uniq | awk '{print $4}') ] && echo '是' || echo '否' )"
echo ""
echo "詳細型號: $(grep 'model name' /proc/cpuinfo | uniq | cut -d: -f2)"

總結

通過 /proc/cpuinfo 可完整掌握 Linux 系統的 CPU 拓撲結構。關鍵在於區分物理 CPU(physical id)、核心(core id/cpu cores)與邏輯處理器(processor/siblings)三個層級。超線程技術通過邏輯核心共享物理資源提升並行吞吐,但非萬能加速器,需根據負載類型評估收益。

Copyright © Windows教程網 All Rights Reserved