linux系統/proc/stat信息與top的cup信息的聯系及區別
一、 /proc 目錄
Linux系統上的/proc目錄是一種文件系統,即proc文件系統,與其它常見的文件系統不同的是,/proc文件系統是一個偽文件系統,它只存在內存當中,而不占用外存空間。它以文件系統的方式為內核與進程提供通信的接口。用戶和應用程序可以通過/proc得到系統的信息,並可以改變內核的某些參數。由於系統的信息,如進程,是動態改變的,所以用戶或應用程序讀取/proc目錄中的文件時,proc文件系統是動態從系統內核讀出所需信息並提交的。
二、/proc/stat與top的cpu信息
1. /proc/stat
該文件包含了所有CPU活動的信息,該文件中的所有值都是從系統啟動開始累計到當前時刻
[root@harry proc]# cat /proc/stat cpu 638 0 1677 868357 2397 7 510 0 0 cpu0 638 0 1677 868357 2397 7 510 0 0 ...(後面省略)
第一行的數值表示的是CPU總的使用情況,各數值的含義如下:
參數 |
解析(單位:jiffies) |
user(638) |
從系統啟動開始累計到當前時刻,處於用戶態的運行時間,不包含 nice值為負進程。 |
nice(0) |
從系統啟動開始累計到當前時刻,nice值為負的進程所占用的CPU時間 |
system(1677) |
從系統啟動開始累計到當前時刻,處於核心態的運行時間 |
idle(868357) |
從系統啟動開始累計到當前時刻,除IO等待時間以外的其它等待時間 |
iowait(2397) |
從系統啟動開始累計到當前時刻,IO等待時間(since 2.5.41) |
irq(7) |
從系統啟動開始累計到當前時刻,硬中斷時間(since 2.6.0-test4) |
softirq(510) |
從系統啟動開始累計到當前時刻,軟中斷時間(since 2.6.0-test4) |
steal(0) |
從系統啟動開始累計到當前時刻,這是在虛擬環境中運行時在其他操作系統上花費的時間。(Since Linux 2.6.11) |
guest(0) |
從系統啟動開始累計到當前時刻,在Linux內核的控制下為客戶操作系統運行虛擬CPU的時間。(Since Linux 2.6.24) |
(jiffies是內核中的一個全局變量,用來記錄自系統啟動一來產生的節拍數,在linux中,一個節拍大致可理解為操作系統進程調度的最小時間片,不同linux內核可能值有不同,通常在1ms到10ms之間)
總的cpu時間:totalCpuTime = user + nice + system + idle + iowait + irq + softirq + stealstolen + guest。
可以看出,stat文件中記錄的時間是從開機到當前時間積累的所有cpu時間。
2. top的cpu信息
輸入top命令,輸出如下:
top - 00:09:46 up 2:55, 1 user, load average: 0.00, 0.00, 0.00 Tasks: 88 total, 1 running, 87 sleeping, 0 stopped, 0 zombie Cpu(s): 0.3%us, 0.3%sy, 0.0%ni, 99.3%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st ...(省略)
Cup(s)那行的含義如下:
0.3%us |
用戶空間占用CPU百分比 |
0.3%sy |
內核空間占用CPU百分比 |
0.0%ni |
用戶進程空間內改變過優先級的進程占用CPU百分比 |
99.3%id |
空閑CPU百分比 |
0.0%wa |
等待輸入輸出的CPU時間百分比 |
0.0%hi |
硬中斷(Hardware IRQ)占用CPU的百分比 |
0.0%si |
軟中斷(Software Interrupts)占用CPU的百分比 |
0.0%st |
在虛擬環境中運行時在其他操作系統上花費的時間 |
可以看出,top中顯示的cpu信息都是實時的各種參數占用的cpu百分比。
3. /proc/stat與top的cpu信息的聯系與區別
區別:/proc/stat文件顯示的是從啟動到當前時間,各種cup時間的累計值;而top則是顯示實時的cpu使用情況。
聯系:top通過讀取/proc/stat去計算cpu占用情況。
/proc/stat 就像汽車儀表盤上的裏程數,而top顯示的cpu信息則是這輛車的速度。
三、參考
1. Linux中通過/proc/stat等文件計算Cpu使用率
2. Linux /proc目錄詳解
3. Linux: /proc/stat info is not consistent with top command
4. TOP命令 詳解CPU 查看多個核心的利用率按1
5. Linux Top 命令解析
(完)
linux系統/proc/stat信息與top的cup信息的聯系及區別