Linux系統運行的各種參數解析
1、CPU 在文件”/proc/stat”裡面就包含了CPU的信息。每一個CPU的每一tick用在什麼地方都在這個文件裡面記著。 後面的數字含義分別是: user、nice、sys、idle、iowait。有些版本的kernel沒有iowait這一項。 這些數值表示從開機到現在,CPU的每tick用在哪里。例如: cpu0 256279030 0 11832528 1637168262 就是cpu0從開機到現在有 256279030 tick用在user消耗,11832528用在sys消耗。 所以如果想計算單位時間(例如1s)裡面CPU的負載,那只需要計算1秒前後數值的差除以每一秒的tick數量就可以了。 gkrellm就是這樣實現的:((200 * (v2 - v1) / CPU_TICKS_PER_SECOND) + 1) /2 例如,第一次讀取/proc/stat,user的值是256279030;一秒以後再讀一次,值是256289030, 那麼CPU在這一秒的user消耗就是: ((200 * (256289030 - 256279030) / CPU_TICKS_PER_SECOND) + 1) /2 = ((10000 * 200 / 1000000) + 1) / 2 = 1%。 2、RAM 文件”/proc/meminfo”裡面包含的就是RAM的信息,還包括了swap的信息。例如: $ cat /proc/meminfo total: used: free: shared: buffers: cached: Mem: 1057009664 851668992 205340672 0 67616768 367820800 Swap: 2146787328 164429824 1982357504 MemTotal: 1032236 kB MemFree: 200528 kB MemShared: 0 kB …… 不過從gkrellm的源代碼看,有些版本沒有前面那兩行統計的信息,只能夠根據下面的Key: Value這種各式的數據收集。 3、磁碟空間 從gkrellm的代碼看,這個是一個很復雜的數據。 磁碟分區的數據有可能分布在:/proc/mounts、/proc/diskstats、/proc/par...