天天看點

linux /proc/cpuinfo

/proc/cpuinfo檔案分析

  在Linux系統中,提供了proc檔案系統顯示系統的軟硬體資訊。如果想了解系統中CPU的提供商和相關配置資訊,則可以通過/proc/cpuinfo檔案得到。本文章針對該檔案進行簡單的總結。

  基于不同指令集(ISA)的CPU産生的/proc/cpuinfo檔案不一樣,基于X86指令集CPU的/proc/cpuinfo檔案包含如下内容:

processor  :0

vendor_id  :GenuineIntel

cpu family  :6

model    :26

model name :Intel(R)Xeon(R) CPU          E5520  @ 2.27GHz

stepping   :5

cpu MHz   :1600.000

cache size  :8192KB

physical id  :0

siblings    :8

core id    :0

cpu cores   :4

apicid        :0

fpu      :yes

fpu_exception :yes

cpuid level   :11

wp      :yes

flags      :fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov patpse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx rdtscp lmconstant_tsc ida nonstop_tsc pni monitor ds_cpl vmx est tm2 cx16 xtpr popcntlahf_lm

bogomips   :4522.12

clflush size  :64

cache_alignment  :64

address sizes    :40 bits physical, 48 bitsvirtual

power management :

以上輸出項的含義如下:

processor :系統中邏輯處理核的編号。對于單核處理器,則可認為是其CPU編号,對于多核處理器則可以是實體核、或者使用超線程技術虛拟的邏輯核

vendor_id :CPU制造商

cpu family :CPU産品系列代号

model   :CPU屬于其系列中的哪一代的代号

model name:CPU屬于的名字及其編号、标稱主頻

stepping  :CPU屬于制作更新版本

cpu MHz  :CPU的實際使用主頻

cache size   :CPU二級緩存大小

physical id   :單個CPU的标号

siblings       :單個CPU邏輯實體核數

core id        :目前實體核在其所處CPU中的編号,這個編号不一定連續

cpu cores    :該邏輯核所處CPU的實體核數

apicid          :用來區分不同邏輯核的編号,系統中每個邏輯核的此編号必然不同,此編号不一定連續

fpu             :是否具有浮點運算單元(Floating Point Unit)

fpu_exception  :是否支援浮點計算異常

cpuid level   :執行cpuid指令前,eax寄存器中的值,根據不同的值cpuid指令會傳回不同的内容

wp             :表明目前CPU是否在核心态支援對使用者空間的寫保護(WriteProtection)

flags          :目前CPU支援的功能

bogomips   :在系統核心啟動時粗略測算的CPU速度(Million Instructions Per Second)

clflush size  :每次重新整理緩存的大小機關

cache_alignment :緩存位址對齊機關

address sizes     :可通路位址空間位數

power management :對能源管理的支援,有以下幾個可選支援功能:

  ts:  temperature sensor

  fid:   frequency id control

  vid: voltage id control

  ttp: thermal trip

  tm:

  stc:

  100mhzsteps:

  hwpstate:

根據以上内容,我們則可以很友善的知道目前系統關于CPU、CPU的核數、CPU是否啟用超線程等資訊。

查詢系統具有多少個邏輯核:cat /proc/cpuinfo |grep "processor" | wc -l

查詢系統CPU的實體核數:cat /proc/cpuinfo | grep"cpu cores" | uniq

查詢系統CPU是否啟用超線程:cat /proc/cpuinfo | grep -e"cpu cores"  -e "siblings" | sort | uniq

  輸出舉例:

    cpu cores    :6

siblings     : 6

  如果cpu cores數量和siblings數量一緻,則沒有啟用超線程,否則超線程被啟用。

查詢系統CPU的個數:cat /proc/cpuinfo | grep"physical id" | sort | uniq | wc -l

繼續閱讀