free -m命令輸出詳解

tangyunoracle發表於2015-12-28

free -m輸出有3行:

Mem:表示實體記憶體

-/+ buffers/cached:表示實體記憶體快取

Swap:表示硬碟交換分割槽

其中Mem中的total、used、free、shared、buffers、cached表示如下:

total:表示實體記憶體總量。

used:表示總計分配給快取(包含buffers 與cache )使用的數量,但其中可能部分快取並未實際使用。

free:未被分配的記憶體。

shared:共享記憶體。

buffers:系統分配但未被使用的buffers數量。

cached:系統分配但未被使用的cache數量。

buffers/cached中的total、used、free表示如下:

used:實際使用的buffers與cache總量,也是實際使用的記憶體總量。

free:未被使用的buffers與cache和未被分配的記憶體之和,這就是系統當前實際可用記憶體。

cache 和 buffer的區別:

Cache: 快取記憶體,是位於CPU與主記憶體間的一種容量較小但速度很高的儲存器。由於CPU的速度遠高於主記憶體,CPU直接從記憶體中存取資料要等待一定時間周 期,Cache中儲存著CPU剛用過或迴圈使用的一部分資料,當CPU再次使用該部分資料時可從Cache中直接呼叫,這樣就減少了CPU的等待時間,提 高了系統的效率。Cache又分為一級Cache(L1 Cache)和二級Cache(L2 Cache),L1 Cache整合在CPU內部,L2 Cache早期一般是焊在主機板上,現在也都整合在CPU內部,常見的容量有256KB或512KB L2 Cache。

Buffer:緩衝區,一個用於儲存速度不同步的裝置或優先順序不同的裝置之間傳輸資料的區域。透過緩衝區,可以使程式之間的相互等待變少,從而使從速度慢的裝置讀入資料時,速度快的裝置的操作程式不發生間斷。

buffer與cache的區別:

A buffer is something that has yet to be "written" to disk.

A cache is something that has been "read" from the disk and stored for later use.

# free -m

             total       used       free     shared    buffers     cached

Mem:         96867      81163      15703          0       3509      67720

-/+ buffers/cache:       9933      86933

Swap:         8191         84       8107


可以整理出如下等式:

total(Mem) = used(Mem) + free(Mem)

total(Mem) = used(buffers/cache) + free(buffers/cache)

used(Mem)  = buffers(Mem) + cached(Mem) + used(buffers/cache)

free(buffers/cache) = buffers(Mem) + cached(Mem) + free(Mem)

Created by Tony.Tang[TangYun]2015.12[整理自網路]
------------------------End---------------------------

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24930246/viewspace-1965976/,如需轉載,請註明出處,否則將追究法律責任。

相關文章