1. 程式人生 > 其它 >cpu的個數、核心數、執行緒數

cpu的個數、核心數、執行緒數

CPU的個數(physical cpu)

CPU個數指的是CPU的晶片的數量,主機板上實際插入的CPU的硬體個數,一般家用CPU只有一個CPU插槽。
在windows系統下,可以通過輸入systeminfo命令,來檢視物理cpu的個數。
這裡看到的,只有1個CPU

CPU的核心數(core)

最早的CPU,一個CPU只有一個物理核心(a single core),作業系統同一時刻執行一個程序,存在效能瓶頸,後面把2個核心簡單粗暴放到一個物理CPU中,就出現了2核心的CPU(dual-core cpu)。
後面一個CPU可以封裝多個核心,就出現了多核心CPU(multiple cores),實現了同一時刻執行N個執行緒。
這裡的物理核心只有4個,但是通過超執行緒技術可以模擬8個邏輯CPU

在windows系統下檢視cpu的core和logic processor

在linux系統下檢視cpu的core和logic processor

cat /proc/cpuinfo

返回的內容如下
processor : 3 // 邏輯cpu的編號,從0開始,當前有4個邏輯cpu
vendor_id : GenuineIntel
cpu family : 6
model : 13
model name : QEMU Virtual CPU version 2.5+
stepping : 3
microcode : 0x1
cpu MHz : 2095.076
cache size : 16384 KB
physical id : 0 // 物理CPU id的編號,從0開始,當前只有1個CPU


siblings : 4
core id : 3
cpu cores : 4 // 核心id,從0開始,當前有4個核心
apicid : 3
initial apicid : 3
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pse36 clflush mmx fxsr sse sse2 ht syscall nx lm rep_good nopl xtopology eagerfpu pni cx16 x2apic hypervisor lahf_lm
bogomips : 4190.15
clflush size : 64
cache_alignment : 64

或者通過lscpu得到這些資訊
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 4 邏輯cpu個數
On-line CPU(s) list: 0-3
Thread(s) per core: 1
Core(s) per socket: 4
座: 1
NUMA 節點: 1
廠商 ID: GenuineIntel
CPU 系列: 6
型號: 13
型號名稱: QEMU Virtual CPU version 2.5+
步進: 3
CPU MHz: 2095.076
BogoMIPS: 4190.15
超管理器廠商: KVM
虛擬化型別: 完全
L1d 快取: 32K
L1i 快取: 32K
L2 快取: 4096K
L3 快取: 16384K
NUMA 節點0 CPU: 0-3
...

也可以通過top然後按下1,展示CPU的資訊
top - 15:26:34 up 37 days, 36 min, 2 users, load average: 0.10, 0.13, 0.13
Tasks: 163 total, 2 running, 161 sleeping, 0 stopped, 0 zombie
%Cpu0 : 1.4 us, 1.7 sy, 0.0 ni, 96.9 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu1 : 2.3 us, 2.7 sy, 0.0 ni, 95.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu2 : 1.7 us, 2.4 sy, 0.0 ni, 95.6 id, 0.0 wa, 0.0 hi, 0.0 si, 0.3 st
%Cpu3 : 1.4 us, 2.4 sy, 0.0 ni, 95.9 id, 0.0 wa, 0.0 hi, 0.0 si, 0.3 st
KiB Mem : 16261848 total, 4184032 free, 4420280 used, 7657536 buff/cache
KiB Swap: 4194300 total, 4194300 free, 0 used. 9628876 avail Mem

CPU的執行緒數(thread)

理論上來說,CPU有多少核心,在同一時刻就可以並行處理多少個執行緒,但是引入了新的技術,充分例用core的效能。
intel:超執行緒技術(hyper–threading/HT)
AMD: 多執行緒技術(simultaneous multithreading)

這2個和其他的技術,產生了一些概念:

  • 虛擬 core:virtual core
  • 邏輯處理器:logical processor