歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux Free命令各數字含義及Buffer和Cache的區別

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

日期:2017/2/28 13:53:08   编辑:Linux教程

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)

Copyright © Linux教程網 All Rights Reserved