free命令 buffer與cache的區別

2021-04-14 00:03:17 字數 1483 閱讀 7974

free

free 命令相對於top 提供了更簡潔的檢視系統記憶體使用情況:

# free

total used free shared buffers cached

mem: 255988 231704 24284 0 6432 139292

-/+ buffers/cache: 85980 170008

swap: 746980 0 746980

mem:表示物理記憶體統計

-/+ buffers/cached:表示物理記憶體的快取統計

swap:表示硬碟上交換分割槽的使用情況,這裡我們不去關心。

系統的總物理記憶體:255988kb(256m),但系統當前真正可用的記憶體並不是第一行free 標記的 24284kb,它僅代表未被分配的記憶體。

我們使用total1、used1、free1、used2、free2 等名稱來代表上面統計資料的各值,1、2 分別代表第一行和第二行的資料。

total1:表示物理記憶體總量。

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

free1:未被分配的記憶體。

shared1:共享記憶體,一般系統不會用到,這裡也不討論。

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

cached1:系統分配但未被使用的cache 數量。buffer 與cache 的區別見後面。

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

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

total1 = used2 + free2

used1 = buffers1 + cached1 + used2

free2 = buffers1 + cached1 + free1

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.

兩者都是ram中的資料。簡單來說,buffer是即將要被寫入磁碟的,cache是被從磁碟中讀出來的。

buffer是由各種程序分配的,被用在如輸入佇列等方面,乙個簡單的例子如某個程序要求有多個字段讀入,在所有欄位被讀入完整之前,程序把先前讀入的字段放在buffer中儲存。

cache經常被用在磁碟的i/o請求上,如果有多個程序都要訪問某個檔案,於是該檔案便被做成cache以方便下次被訪問,這樣可提供系統效能。

free命令中cached和buffers的區別

root beta nginx free m total used free shared buffers cached mem 15948 5974 9974 0232 2828 buffers cache 2913 13035 swap 3999 03999 1 mem行 2 buffers c...

free命令中buffers與cached的區別

執行free命令後,會顯示buffers和cached選項 free total used free shared buffers cached mem 3085864 2200144 885720 0 595440 1273512 buffers cache 331192 2754672 swap...

free命令小結

參考 free輸出格式如下 total used free shared buffers cached mem 32783508 32138192 6453161008516 241816 13874660 buffers cache 18021716 14761792 要點是,這裡的第一行mem的...