Linux CPU使用率的計算


     CPU 使用率衡量的是程序運行占用的CPU 百分比。Linux 的CPU 使用率信息可以通過/proc/stat 文件計算得到。

proc 文件系統

      /proc 文件系統是一個偽文件系統,它只存在內存當中,而不占用外存空間。它以文件系統的方式為內核與進程提供通信的接口。用戶和應用程序可以通過/proc得到系統的信息,並可以改變內核的某些參數。由於系統的信息,如進程,是動態改變的,所以用戶或應用程序讀取/proc目錄中的文件時,proc文件系統是動態從系統內核讀出所需信息並提交的。


      /proc目錄中有一些以數字命名的目錄,它們是進程目錄。系統中當前運行的每一個進程在/proc下都對應一個以進程號為目錄名的目錄/proc/pid,它們是讀取進程信息的接口。此外,在Linux 2.6.0-test6以上的版本中/proc/pid目錄中有一個task目錄,/proc/pid/task目錄中也有一些以該進程所擁有的線程的線程號命名的目錄/proc/pid/task/tid,它們是讀取線程信息的接口。

/proc/cpuinfo文件

      該文件中存放了有關 cpu的相關信息(型號,緩存大小等)。

 

image 

 

/proc/stat文件

該文件包含了所有CPU活動的信息,該文件中的所有值都是從系統啟動開始累計到當前時刻。不同內核版本中該文件的格式可能不大一致,以下通過實例來說明數據該文件中各字段的含義。

image

第一行的數值表示的是CPU總的使用情況,所以我們只要用第一行的數字計算就可以了。下表解析第一行各數值的含義:

這里數字的單位是:jiffies
jiffies 是內核中的一個全局變量,用來記錄自系統啟動一來產生的節拍數,在linux中,一個節拍大致可理解為操作系統進程調度的最小時間片,不同linux內核可能值有不同,通常在1ms到10ms之間。

 

 

 

 

 

 

 

參考資料:

Linux平台Cpu使用率的計算
http://www.blogjava.net/fjzag/articles/317773.html


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2020 ITdaan.com