buffer 與cache 的區別

2021-06-23 00:34:07 字數 1735 閱讀 5768

一、free命令

[root@xen_202_12 /]# free -m

total       used       free     shared    buffers     cached

mem:          3072       2459        612          0        207       1803

-/+ buffers/cache:        447       2624

swap:         1913          0       1913

第2行:

total 記憶體總數: 3072

used 已經使用的記憶體數: 2459

free 空閒的記憶體數: 612

shared 當前已經廢棄不用,總是0

buffers: buffer cache記憶體數: 13220

cached: page cache記憶體數: 2720160

關係:total = used + free

第3行:

-/+ buffers/cache的意思:

-buffers/cache 的記憶體數: 447 (等於第1行的 used - buffers - cached)

+buffers/cache 的記憶體數: 2624 (等於第1行的 free + buffers + cached)

注:此處的記憶體數在用上面式子計算後,在大小上有一點點出入(還不知道是什麼原因)。

可見-buffers/cache反映的是被程式實實在在吃掉的記憶體,而+buffers/cache反映的是可以挪用的記憶體總數。

第4行單獨針對交換分割槽。

為了提高磁碟訪問效率, linux做了一些精心的設計, 除了對dentry進行快取(用於vfs,加速檔案路徑名到inode的轉換), 還採取了兩種主要cache方式:buffer cache和page cache。前者針對磁碟塊的讀寫,後者針對檔案inode的讀寫。這些cache有效縮短了 i/o系統呼叫(如read,write,getdents)的時間。

如上例:

2624= 612+207+1803

二、buffers與cached的區別:

buffers是用來給塊裝置做的緩衝大小,他只記錄檔案系統的metadata以及 tracking in-flight pages。

cached用來給檔案做緩衝。

即:buffers是用來儲存目錄裡面有什麼內容,許可權等等,而cached用來記憶我們開啟的檔案.

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.

還可以借助top命令觀察來理解buffer與cache的區別:

第四行:記憶體狀態

8306544k total 物理記憶體總量(8gb)

7775876k used 使用中的記憶體總量(7.7gb)

530668k free 空閒記憶體總量(530m)

79236k buffers 快取的記憶體量 (79m)

第五行:swap交換分割槽

2031608k total 交換區總量(2gb)

2556k used 使用的交換區總量(2.5m)

2029052k free 空閒交換區總量(2gb)

4231276k cached 緩衝的交換區總量(4gb)

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.cach...

buffer 與cache 的區別

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 ...

Cache和Buffer的區別

1.cache 快取區,是快取記憶體,是位於cpu和主記憶體之間的容量較小但速度很快的儲存器,因為cpu的速度遠遠高於主記憶體的速度,cpu從記憶體中讀取資料需等待很長的時間,而 cache儲存著cpu剛用過的資料或迴圈使用的部分資料,這時從cache中讀取資料會更快,減少了cpu等待的時間,提高了...