Linux下區分物理CPU、邏輯CPU和CPU核數


㈠ 概念
        ① 物理CPU               
           實際Server中插槽上的CPU個數
           物理cpu數量,可以數不重復的 physical id 有幾個           
        ② 邏輯CPU               
           Linux用戶對 /proc/cpuinfo 這個文件肯定不陌生. 它是用來存儲cpu硬件信息的
           信息內容分別列出了processor 0 – n 的規格。這里需要注意,如果你認為n就是真實的cpu數的話, 就大錯特錯了
           一般情況,我們認為一顆cpu可以有多核,加上intel的超線程技術(HT), 可以在邏輯上再分一倍數量的cpu core出來
           邏輯CPU數量=物理cpu數量 x cpu cores 這個規格值 x 2(如果支持並開啟ht)
           備注一下:Linux下top查看的CPU也是邏輯CPU個數              
        ③ CPU核數           
           一塊CPU上面能處理數據的芯片組的數量、比如現在的i5 760,是雙核心四線程的CPU、而 i5 2250 是四核心四線程的CPU              
           一般來說,物理CPU個數×每顆核數就應該等於邏輯CPU的個數,如果不相等的話,則表示服務器的CPU支持超線程 

㈡ 查看CPU信息          

          vendor id     如果處理器為英特爾處理器,則字符串是 GenuineIntel。
          processor     包括這一邏輯處理器的唯一標識符。
          physical id   包括每個物理封裝的唯一標識符。
          core id       保存每個內核的唯一標識符。
          siblings      列出了位於相同物理封裝中的邏輯處理器的數量。
          cpu cores     包含位於相同物理封裝中的內核數量。

         1. 擁有相同 physical id 的所有邏輯處理器共享同一個物理插座,每個 physical id 代表一個唯一的物理封裝。

         2. Siblings 表示位於這一物理封裝上的邏輯處理器的數量,它們可能支持也可能不支持超線程(HT)技術。
         3. 每個 core id 均代表一個唯一的處理器內核,所有帶有相同 core id 的邏輯處理器均位於同一個處理器內核上。簡單的說:“siblings”指的是一個


物理CPU有幾個邏輯,CPU,”cpu cores“指的是一個物理CPU有幾個核。
         4. 如果有一個以上邏輯處理器擁有相同的 core id 和 physical id,則說明系統支持超線程(HT)技術。
         5. 如果有兩個或兩個以上的邏輯處理器擁有相同的 physical id,但是 core id不同,則說明這是一個多內核處理器。cpu cores條目也可以表示是否支持多內核。

   總核數 = 物理CPU個數 X 每顆物理CPU的核數  

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

    查看物理CPU個數

     # cat /proc/cpuinfo | grep "physical id"| sort| uniq| wc -l

    查看每個物理CPU中core的個數(即核數)

    # cat /proc/cpuinfo | grep "cpu cores"| uniq

   查看邏輯CPU的個數

    # cat /proc/cpuinfo | grep "processor"| wc -l

 

   查看CPU信息(型號)
    # cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c

   查看各個物理CPU上面封裝的邏輯處理器(即超線程后的CPU)個數
    # cat /proc/cpuinfo | grep siblings 

   查看內存大小
    # cat /proc/meminfo | grep -i "memtotal"

 --------------------------------------------------------------
    查看當前操作系統發行版信息
   # cat /etc/issue

    查看cpu運行模式

    # getconf LONG_BIT

       32

   (說明當前CPU運行在32bit模式下, 但不代表CPU不支持64bit)

   # cat /proc/cpuinfo | grep flags | grep ' lm ' | wc -l
             2

   結果大於0, 說明支持64bit計算. lm指long mode, 支持lm則是64bit)

   #lscpu

    Architecture:          i686                     #架構686
    CPU(s):                2                        #邏輯cpu顆數是2
    Thread(s) per core:    1                        #每個核心線程數是1                 
    Core(s) per socket:    2                        #每個cpu插槽核數/每顆物理cpu核數是2
    CPU socket(s):         1                        #cpu插槽數是1
    Vendor ID:             GenuineIntel             #cpu廠商ID是GenuineIntel
    CPU family:            6                        #cpu系列是6
    Model:                 23                       #型號23
    Stepping:              10                       #步進是10
    CPU MHz:               800.000                  #cpu主頻是800MHz
    Virtualization:        VT-x                     #cpu支持的虛擬化技術VT-x(對此在下一博文中解釋下
    L1d cache:             32K                      #一級緩存32K(google了下,這具體表示表示cpu的L1數據緩存為32k)
    L1i cache:             32K                      #一級緩存32K(具體為L1指令緩存為32K)
    L2 cache:              3072K                    #二級緩存3072k

     查看服務器型號(或者是生產廠家)

      # dmidecode | grep "Product Name"
   Product Name: VMware Virtual Platform
   Product Name: 440BX Desktop Reference Platform

      # dmidecode -t system

   查看網卡信息

   # dmesg | grep eth1

  ----------歷經天華成此景,世間萬事出艱辛!----------


免責聲明!

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



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