cpu利用率是對系統進行效能分析的重要因素,本文將說明cpu時間的組成以及利用率的計算方法。
核心中的時間
具體說明cpu的各種時間之前,先說明核心中幾個重要的時間概念。
hz是系統時鐘在一秒內固定發出時鐘中斷的次數。hz在編譯核心前是可以進行配置的,因此通過下述命令就可以檢視當前系統的時鐘中斷頻率:
1
cat /boot/config-`uname -r` | grep config_hz
tick為系統時鐘每「滴答」一次的時間,其值為(1/hz)秒。也就是連續兩次時鐘中斷之間的時間間隔。
jiffies用來計算自系統啟動以來tick的次數,也就是說系統時鐘每產生一次時鐘中斷,該變數的值就增加一次。
cpu時間
cpu的工作時間由三部分組成:使用者態時間、系統態時間和空閒態時間。具體的組成為;
cpu時間=user time+nice time+system time+hardirq time+softirq time+waiting time+idle time+steal time
空閒態時間只包含了idle time,而使用者態時間和系統態時間則由多個部分組成,詳析介紹如下。
使用者態時間
使用者態時間包括使用者時間和nice時間。
使用者時間(user time)指的是cpu在使用者態執行程序的時間。nice時間(nice time)是指系統花費在調整程序優先順序上的時間。
核心態時間
核心態時間包括系統時間、軟中斷時間和硬中斷時間。
系統時間(system time)表示cpu在核心執行的時間,如果乙個cpu的系統時間占有率高,則說明該系統中某個子系統產生了瓶頸。
軟中斷時間和硬中斷時間分別對應系統在處理軟硬中斷時候所花費的cpu時間。
此外,waiting time是指cpu在等待i/o完成時所花費的時間。而steal time指的是當前cpu等待另外虛擬的cpu處理完畢時話費的時間。
cpu利用率
cpu利用率可以通過top等命令來檢視,它們的計算方法如下:
%us =(user time + nice time)/cpu時間*100%
%sy=(system time + hardirq time +softirq time)/
%id=(idle time)/cpu時間*100%
%ni=(nice time)/cpu時間*100%
%wa=(waiting time)/cpu時間*100%
%hi=(hardirq time)/cpu時間*100%
%si=(softirq time)/cpu時間*100%
%st=(steal time)/cpu時間*100%
檢視方法
通過top、iostat和vmstat等命令均可以檢視上述cpu的利用率。這些命令的資料**均來自與/proc/stat檔案,不過該檔案中的時間是以tick為單位的。
cpu利用率 CPU利用率錯誤
cpu利用率 cpu利用率是每個人用來衡量處理器效能的指標。netflix的高階效能架構師布倫丹 格雷格 brendan gregg 在第16屆年度南加州linux expo scale 上稱其為 五分鐘公共服務公告 但 cpu卻是一種誤導性的衡量指標,說明處理器的實際繁忙程度。布倫丹在他的閃電演講...
Linux系統中的CPU利用率
設前一次cpu執行的總時間長期為jiffies pr,當前cpu執行總時間為jiffies cur,前一次監控使用者進行程占用的時間為jiffies user pr,當前使用者程序占用時間為jiffies user cur,則 pe rcen br br jif fies use r cu r ji...
SQL SERVER 檢視CPU利用率
檢視cpu利用率 create procedure sp gettop10 cpu as begin set nocount on declare cinterval char 8 declare interval int set cinterval 00 00 10 create table th...