一、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等待的時間,提高了...