處理器使用率
這裡要從/proc/stat中提取四個數據:用戶模式(user)、低優先級的用戶模式(nice)、內核模式(system)以及空閒的處理器時間(idle)。它們均位於/proc/stat文件的第一行。CPU的利用率使用如下公式來計算。
CPU利用率 = 100 *(user + nice + system)/(user + nice + system + idle)
空閒內存=free+buffers+cached=total-used
可用內存=free的內存+cached的內存+buffers的內存
真正的內存利用率 = 可用內存 / 總內存(注意此處 可用內存 由上述公式計算而來,其實這個計算結果在free命令回顯中已有,即回顯結果第三行”-/+ buffers/cached”,此行第二個數值即為加上了buffers和cached之後的內存,即為上述公式所算的可用內存 )。
你可以在Linux中,敲入free命令獲得當前系統的內存使用情況。
#busybox free
total used free shared buffers
Mem: 55636 52808 2828 0 3132
Swap: 0 0 0
Total: 55636 52808 2828
當我滿心歡喜的敲入上面的命令時,收到的卻是一陣陣的冷汗,2828k,我的系統只剩下了2M多的內存,系統還能跑嗎,是不是命令有錯誤!!!
讓我們來看看在PC機上的Linux系統中,結果是什麼樣子的。
#free
total used free shared buffers cached
Mem: 4091524 4021016 70508 0 7656 1824312
-/+ buffers/cache: 2189048 1902476
Swap: 4088532 2891732 1196800
這裡我先解釋一下幾個關鍵的概念。
buffers:主要是用來給Linux系統中塊設備做緩沖區。
cached:用來緩沖我們所打開的文件。
在系統中內存是很寶貴的資源,Linux的思想是,如果內存充足,不用白不用,它會使用內存來cache一些文件,從而加快進程的運行速度;當內存不足時,這些內存又會被回收,供程序使用。
所以真正可用的內存=free+buffers+cached=70508+7656+1824312=1902476。