linux系統,cpu相關信息是保存在中/proc/cpuinfo文件中。

1、通過 cat /proc/cpuinfo查看

[root@root ~]# cat /proc/cpuinfo 
processor       : 0                 // 邏輯處理器的唯一標識符
vendor_id       : GenuineIntel      // CPU制造商,GenuineIntel表示是英特爾處理器
cpu family      : 6                 // CPU產品系列代號
model           : 79                // 表明CPU屬於其系列中的哪一代號
model name      : Intel(R) Xeon(R) CPU E5-2682 v4 @ 2.50GHz    // CPU屬於的名字、編號、主頻
stepping        : 1                 // 步進編號,用來標識處理器的設計或制作版本,有助於控制和跟蹤處理器的更改
microcode       : 0x1               // CPU微代碼
cpu MHz         : 2494.220          // CPU的實際試用主頻
cache size      : 40960 KB          // CPU二級cache大小
physical id     : 0                 // 物理CPU的標號,物理CPU就是硬件上真實存在的CPU
siblings        : 1                 // 一個物理CPU有幾個邏輯CPU
core id         : 0                 // 一個物理CPU上的每個內核的唯一標識符,不同物理CPU的core id可以相同,因為每個CPU上的core id都從0開始標識
cpu cores       : 1                 // 指的是一個物理CPU有幾個核
apicid          : 0                 // 用來區分不同邏輯核的編號,系統中每個邏輯核的此編號都不同
initial apicid  : 0
fpu             : yes               // 是否具有浮點運算單元
fpu_exception   : yes               // 是否支持浮點計算異常
cpuid level     : 13                // 執行cpuid指令前,eax寄存器中的值,不同cpuid指令會返回不同內容
wp              : yes               // 表明當前CPU是否在內核態支持對用戶空間的寫保護(Write Protection)
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl eagerfpu pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch ibrs ibpb stibp fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm rdseed adx smap xsaveopt spec_ctrl intel_stibp
bogomips        : 4988.44           // 在系統內核啟動時粗略測算的CPU速度
clflush size    : 64                // 每次刷新緩存的大小單位
cache_alignment : 64                // 緩存地址對齊單位
address sizes   : 46 bits physical, 48 bits virtual // 可訪問地址空間位數    
power management:                   // 電源管理相關

2、通過lscpu命令進行查看

lscpu命令從sysfs和/proc/cpuinfo收集cpu體系結構信息,命令的輸出比較易讀,命令輸出的信息包含cpu數量,線程,核數,套接字等。

[root@localhost ~]# lscpu
Architecture:          x86_64            // 架構,這里的64指的位處理器
CPU op-mode(s):        32-bit, 64-bit    // CPU支持的模式:32位、64位
Byte Order:            Little Endian     // 字節排序的模式,常用小端模式
CPU(s):                32                // 邏輯CPU數量
On-line CPU(s) list:   0-31              // 在線的cpu數量 有些時候為了省電或者過熱的時候,某些CPU會停止運行
Thread(s) per core:    2                 // 每個核心支持的線程數
Core(s) per socket:    8                 // 每顆物理cpu的核數
Socket(s):             2                 // 主板上插CPU的槽的數量,即物理cpu數量
NUMA node(s):          2
Vendor ID:             GenuineIntel      // cpu廠商ID
CPU family:            6                 // CPU系列
Model:                 69                // CPU型號    
Model name:            Intel(R) Core(TM) i5-4210U CPU @ 1.70GHz
Stepping:              1    
CPU MHz:               1704.097          // cpu主頻
CPU max MHz:           2700.0000         
CPU min MHz:           800.0000
BogoMIPS:              4788.97           // MIPS是每秒百萬條指令,Bogo是Bogus(偽)的意思,這里是估算MIPS值
Virtualization:        VT-x              // cpu支持的虛擬化技術
L1d cache:             32K               // 一級高速緩存 dcache 用來存儲數據
L1i cache:             32K               // 一級高速緩存 icache 用來存儲指令
L2 cache:              256K              // 二級緩存
L3 cache:              3072K             // 三級緩存 緩存速度上 L1 > L2 > L3 > DDR(內存)
NUMA node0 CPU(s):     0-3

3、邏輯核數、物理cpu、線程數關系

基本概念:

  • 物理CPU數:主板上實際插入的cpu數量,cpuinfo中不重復的physical id數量
  • 邏輯CPU數:  一般情況,一個cpu可以有多核,加上intel的超線程技術(HT), 可以在邏輯上再分一倍數量的cpu core出來。
  • cpu核數:一塊CPU能處理數據的芯片組的數量
  • 超線程:超線程技術就是利用特殊的硬件指令,把兩個邏輯內核模擬成兩個物理芯片,讓單個處理器都能使用線程級並行計算,進而兼容多線程操作系統和軟件,減少了CPU的閑置時間,提高的CPU的運行效率。

關系:

  • 總核數 = 物理CPU個數 * 每顆物理CPU的核數
  • 總邏輯CPU數 = 物理CPU個數 * 每顆物理CPU的核數 * 超線程數

判斷是否是否開啟了超線程:
一般來說,物理CPU個數×每顆核數就應該等於邏輯CPU的個數,如果不相等的話,則表示服務器的CPU支持超線程技術。

4、查看cpu相關信息命令

// 查看CPU型號
[root@root /]# cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c

// 查看物理CPU個數
[root@root /]# cat /proc/cpuinfo | grep 'physical id' | sort | uniq | wc -l

// 查看每個物理CPU的核數
[root@root /]# cat /proc/cpuinfo | grep 'core id' | sort -u | wc -l

// 查看邏輯CPU的數量(總線程數量)
[root@root /]# cat /proc/cpuinfo| grep "processor"| wc -l

// 查看CPU的主頻
[root@root /]# cat  /proc/cpuinfo | grep MHz | uniq