i2000:~ # lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 8
On-line CPU(s) list: 0-7
Thread(s) per core: 2
Core(s) per socket: 1
Socket(s): 4
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 62
Stepping: 4
CPU MHz: 2499.998
BogoMIPS: 4999.99
Hypervisor vendor: KVM
Virtualization type: full
L1d cache: 32K
L1i cache: 32K
L2 cache: 4096K
NUMA node0 CPU(s): 0-7
socket就是主板上插cpu的槽的數目,也就是可以插入的物理CPU的個數。
core就是我們平時說的“核“,每個物理CPU可以雙核,四核等等。
thread就是每個core的硬件線程數,即超線程
輸入命令cat /proc/cpuinfo 查看physical id有幾個,上述結果顯示只有0,所以只有一個物理cpu;查看processor有幾個,上述結果顯示有0和1兩個,所以有兩個邏輯cpu。
(一)概念
① 物理CPU
實際Server中插槽上的CPU個數
物理cpu數量,可以數不重復的 physical id 有幾個
② 邏輯CPU
/proc/cpuinfo 用來存儲cpu硬件信息的
信息內容分別列出了processor 0 –processor 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信息
當我們 cat /proc/cpuinfo 時、
具有相同core id的CPU是同一個core的超線程
具有相同physical id的CPU是同一個CPU封裝的線程或核心
㈢ 下面舉例說明
① 查看物理CPU的個數
#cat /proc/cpuinfo |grep "physical id"|sort |uniq|wc -l
2
② 查看邏輯CPU的個數
#cat /proc/cpuinfo |grep "processor"|wc -l
24
③ 查看CPU是幾核
#cat /proc/cpuinfo |grep "cores"|uniq
6
我這里應該是2個Cpu,每個Cpu有6個core,應該是Intel的U,支持超線程,所以顯示24