天天看點

linux 性能監控指令4——free

原文轉自網絡

下面是對這些數值的解釋:

total:總計實體記憶體的大小。

used:已使用多大。

free:可用有多少。

Shared:多個程序共享的記憶體總額。

Buffers/cached:磁盤緩存的大小。

第三行(-/+ buffers/cached):

第四行就不多解釋了。

差別:第二行(mem)的used/free與第三行(-/+ buffers/cache)used/free的差別。 

這兩個的差別在于使用的角度來看,第一行是從OS的角度來看,因為對于OS,buffers/cached都是屬于被使用,是以他的可用記憶體是16176KB,已用記憶體是3250004KB,其中包括,核心(OS)使用+Application(X,

oracle,etc)使用的+buffers+cached.

第三行所指的是從應用程式角度來看,對于應用程式來說,buffers/cached 是等于可用的,因為buffer/cached是為了提高檔案讀取的性能,當應用程式需在用到記憶體的時候,buffer/cached會很快地被回收。

是以從應用程式的角度來說,可用記憶體=系統free memory+buffers+cached。

如上例:

2795064=16176+110652+2668236

接下來解釋什麼時候記憶體會被交換,以及按什麼方交換。當可用記憶體少于額定值的時候,就會開會進行交換。

如何看額定值:

用free -m檢視的結果:

檢視/proc/kcore檔案的大小(記憶體鏡像):

備注:占用記憶體的測量

測量一個程序占用了多少記憶體,Linux系統為我們提供了一個很友善的方法,/proc目錄為我們提供了所有的資訊,實際上top等工具也通過這裡來擷取相應的資訊。

輸出解釋

CPU 以及CPU0。。。的每行的每個參數意思(以第一行為例)為:

參數 解釋 /proc//status

Size (pages) 任務虛拟位址空間的大小 VmSize/4

Resident(pages) 應用程式正在使用的實體記憶體的大小 VmRSS/4

Shared(pages) 共享頁數 0

Trs(pages) 程式所擁有的可執行虛拟記憶體的大小 VmExe/4

Lrs(pages) 被映像到任務的虛拟記憶體空間的庫的大小 VmLib/4

Drs(pages) 程式資料段和使用者态的棧的大小 (VmData+ VmStk )4

dt(pages) 04

檢視機器可用記憶體

我們通過free指令檢視機器空閑記憶體時,會發現free的值很小。這主要是因為,在Linux系統中有這麼一種思想,記憶體不用白不用,是以它盡可能的cache和buffer一些資料,以友善下次使用。但實際上這些記憶體也是可以立刻拿來使用的。

是以 空閑記憶體=free+buffers+cached=total-used

繼續閱讀