在linux中檢視cpu個數方法

perfychi發表於2012-06-15

在linux中檢視cpu個數方法

2011-05-24 11:00:41  來源:
  在linux中檢視cpu個數方法   對超執行緒cpu來說
  在linux中檢視cpu個數方法
  (1)對超執行緒cpu來說
  cat /proc/cpuinfo | grep pysical | grep id
  如:[root@app ~]# cat /proc/cpuinfo | grep physical | grep id
  physical id      : 0
  physical id      : 3
  physical id      : 0
  physical id      : 3
  看到physical相同的則視為同一個物理cpu(對超執行緒cpu來說)
  (2)普通cpu來說:
  cat /proc/cpuinfo | grep processor
  就可以,當然你也可以直接統計cpu個數
  cat /proc/cpuinfo | grep processor | wc -l
  檢視記憶體詳細情況
  1.cat /proc/meminfo
  2. free
  3.top
  ------------------------------------------------------------
  詳細情況描述
  linux 下
  cat   /proc/cpuinfo
  檔案會顯示cpu的資訊
  processor 會從0開始記數 繼續下去多個cpu
  flags 如果有 ht 說明支援超執行緒技術
  判斷物理CPU的個數可以檢視physical id 的值,相同則為同一個物理 CPU
  processor : 4
  vendor_id : GenuineIntel
  cpu family : 15
  model : 4
  model name : Intel(R) Xeon(TM) CPU 3.00GHz
  stepping : 8
  cpu MHz : 3002.700
  cache size : 2048 KB
  physical id : 9
  siblings : 4
  core id : 19
  cpu cores : 2
  ------------------------------
  processor : 5
  vendor_id : GenuineIntel
  cpu family : 15
  model : 4
  model name : Intel(R) Xeon(TM) CPU 3.00GHz
  stepping : 8
  cpu MHz : 3002.700
  cache size : 2048 KB
  physical id : 9
  siblings : 4
  core id : 19
  cpu cores : 2
  -----------------------------------------------
  address sizes : 40 bits physical, 48 bits virtual
  power management:
  關鍵詞: SMP linux 多CPU個數 超執行緒HT Hyper-Threading
  摘抄一些網上的相關知識:
  超執行緒技術就是利用特殊的硬體指令,把兩個邏輯核心模擬成兩個物理晶片,讓單個處理器都能使用執行緒級平行計算,
  進而相容多執行緒作業系統和軟體,減少了CPU的閒置時間,提高的CPU的執行效率。
  採用超執行緒及時可在同一時間裡,應用程式可以使用晶片的不同部分。雖然單執行緒晶片每秒鐘能夠處理成千上萬條指令,
  但是在任一時刻只能夠對一條指令進行操作。而超執行緒技術可以使晶片同時進行多執行緒處理,使晶片效能得到提升。
  超執行緒技術是在一顆CPU同時執行多個程式而共同分享一顆CPU內的資源,理論上要像兩顆CPU一樣在同一時間執行兩個執行緒,
  P4處理器需要多加入一個Logical CPU Pointer(邏輯處理單元)。因此新一代的P4 HT的die的面積比以往的P4增大了5%。
  而其餘部分如ALU(整數運算單元)、FPU(浮點運算單元)、L2 Cache(二級快取)則保持不變,這些部分是被分享的。
  雖然採用超執行緒技術能同時執行兩個執行緒,但它並不象兩個真正的CPU那樣,每個CPU都具有獨立的資源。
  當兩個執行緒都同時需要某一個資源時,其中一個要暫時停止,並讓出資源,直到這些資源閒置後才能繼續。
  因此超執行緒的效能並不等於兩顆CPU的效能。
  英特爾P4 超執行緒有兩個執行模式,Single Task Mode(單任務模式)及Multi Task Mode(多工模式)   ,
  當程式不支援Multi-Processing(多處理器作業)時,系統會停止其中一個邏輯CPU的執行,把資源集中於單個邏輯 CPU中,
  讓單執行緒程式不會因其中一個邏輯CPU閒置而減低效能,但由於被停止執行的邏輯CPU還是會等待工作,佔用一定的資源,
  因此Hyper- Threading CPU執行Single Task Mode程式模式時,有可能達不到不帶超執行緒功能的CPU效能,但效能差距不會太大。
  也就是說,當執行單執行緒運用軟體時,超執行緒技術甚至會降低系統效能,尤其在多執行緒作業系統執行單執行緒軟體時容易出現此問題。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/27042095/viewspace-732939/,如需轉載,請註明出處,否則將追究法律責任。

相關文章