Linux Free命令各數字含義及Buffer和Cache的區別 Free 命令的各數字含義 命令演示 加上參數 ,顯示的單位為MB 按行詳解 total :物理記憶體的實際總量 used :總計分配給緩存(buffer+cache)的使用的數量,但是其中部分可能並未實際使用(註意:這裡不是實際使用 ...
Linux Free命令各數字含義及Buffer和Cache的區別
Free 命令的各數字含義
命令演示
[root@vm1 ~]# free
total used free shared buffers cached
Mem: 502276 119160 383116 0 11040 46588
-/+ buffers/cache: 61532 440744
Swap: 835576 0 835576
加上參數m
,顯示的單位為MB
[root@vm1 ~]# free -m
total used free shared buffers cached
Mem: 490 116 374 0 10 45
-/+ buffers/cache: 60 430
Swap: 815 0 815
按行詳解
- total :物理記憶體的實際總量
- used :總計分配給緩存(buffer+cache)的使用的數量,但是其中部分可能並未實際使用(註意:這裡不是實際使用了的記憶體)
- free :未被分配的記憶體(真正的空閑,未被任何程式占用)
- shared:多個進程共用的記憶體總額
- buffers:磁碟緩存(buffer cache)的大小(可提高I/O調用的性能),系統分配的,但是未被使用的buffer剩餘量。
- cached:磁碟緩存(page cache)的大小(可提高I/O調用的性能),系統分配的,但是未被使用的cache剩餘量。
- -buffers/cache:表示已被我們程式使用的記憶體數,計算方法:
used-buffers-cached
(註意:這裡才是記憶體的實際使用量) - +buffers/cache:表示還可被我們使用的記憶體數,計算方法:
free+buffers+cached
- swap:交換分區總量,使用量,剩餘量
記憶體相關參數計算-數字取自上述結果
操作系統總的記憶體數量:total=used+free=116+374=490MB
操作系統目前記憶體實際使用量:used-buffers-cached=116-10-45=61MB
操作系統目前可用記憶體總量=free+buffers+cached=374+10+45=429MB
cache和buffer的區別
1.cache:高速緩存,是位於CPU與主記憶體之間的一種容量較小但是速度較高的存儲器,由於CPU的速度遠高於主記憶體,CPU直接從記憶體中存取數據需要等待一定的時間周期。cache中保存著CPU剛用過或迴圈使用的一部分數據,當CPU再次使用該部分數據時可從cache中直接調用,這樣就減少了CPU的等待時間,提高了系統的效率。
cache又分為一級cache(L1 cache)和二級cache(L2 cache),L1集成在CPU內部,L2早期一般時焊在主板上的,現在也都即成在CPU內部,常見L2 cache的容量有256KB或512KB。
2.buffer:緩衝區,一個用於存儲速度不同步的設備或優先順序不同的設備之間傳輸數據的區域。通過緩衝區,可以使進程之間的相互等待變少。速度快的設備可以利用buffer不間斷的進行寫操作,速度慢的設備可以直接從buffer中讀取數據,減少速度快的設備的等待時間,提高效率。
那麼,Free中的cache和buffer用途就顯而易見啦!
cache:文件系統的緩衝(page cache)
buuffer:塊設備的讀寫緩衝區(buffer cache)