CPU性能指標


1,主頻

主頻 = 時鍾頻率,它是指CPU內部晶振的頻率,常用單位為MHz,它反映了CPU的基本工作節拍;

時鍾頻率又稱主頻,它是指CPU內部晶振的頻率,常用單位為MHz,它反映了CPU的基本工作節拍;

2,時鍾周期

   時鍾周期 t =1/ f; 主頻的倒數

3,機器周期

   機器周期A  = m*t ;一個機器周期包含若干個時鍾周期

4,指令周期

   指令周期B = m*t*n; 執行一條指令所需要的時間,一般包含若干個機器周期

 5,CPI

CPI = m*n;  平均每條指令的平均時鍾周期個數

  

指令周期B = CPI×機器周期 = n(CPI=n)×m×時鍾周期=nm/主頻f, 注意指令周期單位是s或者ns,CPI無量綱

  參考:https://en.wikipedia.org/wiki/Cycles_per_instruction

 

6,MIPS(MillionInstructions Per Second)

   MIPS = 每秒執行百萬條指令數 = 1/(CPI×時鍾周期)= 主頻/CPI

MFLOPS 每秒百萬浮點運算次數。

   表示秒鍾所能執行的指令條數,對於微型計算機可用CPU的主頻和每條指令的執行所需的時鍾周期來衡量。

 

包含關系:指令周期通常用若干個機器周期來表示,在機器語言中,使用執行一條指令所需要的機器周期數來說明指令執行的速度。而機器周期又包含若干個時鍾周期。時鍾周期是最基本的操作單位。

參考: https://en.wikipedia.org/wiki/Instructions_per_second

注意:計算機的運算速度一般用每秒鍾所能執行的指令條數來表示。由於不同類型的指令所需時間長度不同,因而運算速度的計算方法也不同。例如,根據不同類型的指令出現的頻度,乘上不同的系數求得統計平均值,得到平均運算速度。這種方法用MIPS(Millions of Instruction Per Second)作單位,即每秒百萬條指令。

    又如,直接給出CPU的主頻和每條指令的執行所需的時鍾周期。周期一般以MHz為單位。主頻即計算機的時鍾頻率,它在很大程度上決定了主機的工作速度。例如,型號為486DX-133的微型計算機,表明它的CPU型號為486,DX為含浮點處理器,數字133的含義是主頻為133MHz。

題: 若某處理器的時鍾頻率為500MHz,每4個時鍾周期組成一個機器周期,執行一條指令需要3個機器周期,則該處理器的一個機器周期▁8▁ns,平均執行速度為▁42▁MIPS

解析如下:

時鍾周期T等於主頻的倒數,即T=1/500MHz=1/(0.5×10的9次方Hz)=2 ns,機器周期等於4個時鍾周期即=4T=4×2 ns=8 ns,每條指令的時鍾周期數CPI=3×4=12,則平均速度為:f/(CPI×10的6次方)=(500×10的6次方)/(12×10的6次 方)=500/12=41.6≈42MIPS.計算主頻的倒數時要注意把主頻的MHz換算成Hz即500后面加6個0=500×10的6次方=0.5×10的9次方,1/10的9次方 Hz=1ns

每條指令的時鍾周期數CPI=3×4=12,執行一條指令需要3個機器周期數,一個機器周期包含4個時鍾周期,所以CPI=3×4=12,這里計算 的都是周期的個數,和具體的時間ns納秒沒有關系,若帶上具體的時間,一個時鍾周期T=2ns,一個機器周期就是2×4=8ns,執行一條指令需要三個機 器周期得出執行一條指令需要的具體時間為3×8=24ns,執行每條指令的需要的時鍾周期數CPI換句話說就是把執行每條指令需要的時間24ns換算成時 鍾周期個數表示,為多少個時鍾周期個數?時鍾周期是最基本的時間操作單位,500MHz主頻的處理器一個時鍾周期為2ns,24ns等於多少個時鍾周期?24/2=12個時鍾周期,即那一句:“每條指令的時鍾周期數CPI=12”。

 

CPI,IPC的關系及性能相關描述

        每指令周期數(CPI)是一個很重要的高級指標,用來描述CPU如何使用他的時鍾周期,同時也可以用來理解CPU使用率的本質。這個指標也可以被表示未每周期指令書(instructions per cycle,IPC),即CPI的倒數。

        CPI較高代表CPU經常陷入停滯,通常都是在訪問內存。而較低的CPI代表CPU基本沒有停滯,指令吞吐量較高。這些指標指明了性能調優的主要工作方向。

        內存訪問密集的負載,可以通過下面的方法提高性能,如使用更快的內存(DRAM)、提高內存本地性(軟件配置),或者減少內存I/O數量。使用更高時鍾頻率的CPU並不能達到預期的性能目標,因為CPU還是需要為等待內存I/O完成而花費同樣的時間。換句話說,更快的CPU意味着更多的停滯周期,而指令完成速率不變。

        CPI的高低與否實際上和處理器以及處理器功能有關,可以通過實驗方法運行已知的負載得出。例如,你會發現高CPI的負載可以使CPI達到10或者更高,而在低CPI的負載下,CPI低於1(受益於前述的指令流水線和寬度技術,這是可以達到的)。

        值得注意的是,CPI代表了指令處理的效率,但並不代表指令本身的效率。假設有一個軟件改動,加入了一個低效率的循環,這個循環主要在操作CPU寄存器(沒有停止周期):這種改動可能會降低總體CPI,但會提高CPU的使用和利用度。

 

uptime命令,執行結果如下:

 1、10:19:04 //系統當前時間 
2、up 257 days, 18:56 //主機已運行時間,時間越大,說明你的機器越穩定。 
3、12 user //用戶連接數,是總連接數而不是用戶數 
4、load average // 系統平均負載,統計最近1,5,15分鍾的系統平均負載(和vmstat的r列相關聯)

 

uptime得出的1分鍾、5分鍾、15分鍾的三個值除以邏輯核數都大於1,說明cpu負載很大,至於瓶頸需要分析了:

CPU 密集型進程,使用大量 CPU 會導致平均負載升高,這時候兩者是一致的。
I/O 密集型進程,等待 I/O 也會導致平均負載升高,但 CPU 使用率不一定很高。
大量等待 CPU 的進程調度也會導致平均負載很高,此時的 CPU 使用率也會比較高

 

工具法檢查CPU:

1. uptime:檢查負載平均數以確認CPU負載是隨時間上升還是下降。負載平均數超過了CPU數量通常代表CPU飽和。

2. vmstat:每秒運行vmstat,然后檢查空閑列,看看還有多少余量。少於10%可能是一個問題。

3.mpstat:檢查單個熱點(繁忙)CPU,挑出一個可能的線程擴展性問題。

4.top/prstat : 看看哪個進程和用戶是CPU消耗大戶。

5.pidstat /prstat: 把CPU消耗大戶分解成用戶和系統時間。

6. perf / dtrace / stap / oprofile : 從用戶時間或者內核時間的角度剖析CPU使用的堆棧跟蹤,以了解為什么使用這么多CPU。

7. perf / cpustat : 測量CPI。

 

USE方法檢查CPU

USE方法可以在性能調查的早期,在更深入和更耗時的其他策略之前,用來發現所有組件內的瓶頸和錯誤。

對於每個CPU,檢查一下內容:

使用率:CPU繁忙的時間(未在空閑線程中)

飽和度:可運行線程排隊等待CPU的程度

錯誤:CPU錯誤,包括可改正錯誤

錯誤可以優先檢查,因為檢查通常較快,並且最容易理解。有些處理器和操作系統可以感知到可以改正錯誤的上升(錯誤更正碼,ECC),並在不可改正錯誤造成CPU失效前關閉一個CPU作為警示。檢查錯誤包括檢查是否所有CPU都在線。

 

 

 

 

 

參考資料:https://blog.csdn.net/xiaojianpitt/article/details/7613489/

《性能之巔》


免責聲明!

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



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