14、/proc/cpuinfo 文件(查看CPU信息)


轉載http://www.cnblogs.com/itcomputer/p/4888438.html

/proc/cpuinfo文件分析

根據以下內容,我們則可以很方便的知道當前系統關於CPU、CPU的核數、CPU是否啟用超線程等信息。
<1>查詢系統 CPU的個數:cat /proc/cpuinfo | grep " physical id" | sort | uniq | wc -l        // 物理封裝的處理器的id( CPU個數)
<2>查詢系統 每顆CPU的物理核數:cat /proc/cpuinfo | grep " cpu cores" | uniq                 // 位於相同物理封裝的處理器中的內核數量.( 每顆CPU物理核數)
                              core id                    //每個核心的id(邏輯CPU的ID)
                              siblings                              //位於相同物理封裝的處理器中的邏輯處理器的數量(每顆CPU邏輯核數)
 
<3>查詢系統具有多少個邏輯核:cat /proc/cpuinfo | grep "processor" | wc -l        //邏輯處理器的id(邏輯核數)
 
<4>查詢系統CPU是否啟用超線程:cat /proc/cpuinfo | grep -e "cpu cores"  -e "siblings" | sort | uniq
輸出舉例:
  cpu cores    : 6
  siblings     : 6
如果cpu cores數量和siblings數量一致,則沒有啟用超線程,否則超線程被啟用。
為了加深大家對這幾個參數的理解,我們再來看另外一張圖片,這是一台工作站的服務器:

在這個服務器上,'cpu cores' 為4,physical id 有兩個,core id有8個,siblings的值為8,總共有16個processor。

所以這個服務器主機的CPU為2個物理封裝的處理器,每個處理器又有4個處理核心(cpu cores),每個cpu core有可划分為2個邏輯處理器(超線程技術),因此,每個物理處理器上有8個邏輯處理器,總共就有16個processor。這回明白了吧。大體的結 構如下圖:

--------------------------------------------------------------------------------------------------------------------------------------------------

  在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  : 8192 KB
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 pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx rdtscp lm constant_tsc ida nonstop_tsc pni monitor ds_cpl vmx est tm2 cx16 xtpr popcnt lahf_lm
bogomips   :4522.12
clflush size  :64
cache_alignment  : 64
address sizes    : 40 bits physical, 48 bits virtual
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是否在內核態支持對用戶空間的寫保護(Write Protection)
flags          :當前CPU支持的功能
bogomips   :在系統內核啟動時粗略測算的CPU速度(Million Instructions Per Second)
clflush size  :每次刷新緩存的大小單位
cache_alignment :緩存地址對齊單位
address sizes     :可訪問地址空間位數


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM