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

查詢系統CPU是否支持某項功能,則根以上類似,輸出結果進行sort,uniq和grep就可以得到結果。

 

LINUX內核版本是指系統內核的版本號。LINUX的內核具有兩種不同的版本號,實驗版本和產品化版本。要確定LINUX版本的類型,只要查看一下版本號:每一個版本號由三位數字組成,第二位數字說明版本類型。如果第二位數字是偶數則說明這種版本是產品化版本,如果是奇數說明是實驗版本。如2.4.18是產品化版本,2.5.21是實驗版本。查看linux內核版本 命令:uname –r 在/proc/version
Linux發行版本是指一些Linux廠商 將LINUX系統內核與應用軟件及文檔包裝在一起,並提供一些安裝界面和系統設定與管理工具,這就構成了一個發行套件。相對於內核版本,發行套件的版本號是隨着發佈者的不同而不同,與系統內核的版本號是相對獨立的。比如RedHat AS4.0 UP4 的 內核版本 是2.6.9-42。在/etc/redhat-release

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章