首頁 > 軟體

Linux Free命令各數位含義及Buffer和Cache的區別

2020-06-16 17:43:49

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)

本文永久更新連結地址http://www.linuxidc.com/Linux/2016-04/129986.htm


IT145.com E-mail:sddin#qq.com