① linux內存 Buffer和Cache的區別及Linux中查看內存的命令free
Linux中內存查看命令free詳解
2011-08-18 11:24:34| 分類: linux相關|舉報|字型大小 訂閱
下載LOFTER我的照片書 |
free命令用來查看內存的使用情況,與Top命令相比,開銷較小。
$free –m
total used free shared buffers cached
mem: 1002 769 232 0 62 421
-/+ buffers/cache 286 715
swap 1153 0 1 153
說明:在理解free命令的輸出項的時候,要區分兩個概念:第一行(mem),是針對操作系統來說的,而對操作系統來說buffer和cache都是屬於被使用了的內存。第二行(-/+ buffers/cache)是針對應用程序來說的,而對應用程序來說,buffer和cache都屬於可以使用的內存。
所以:
第一行(mem):
total:表示系統可使用的物理內存的總量為1002;
used表示已經被分配的內存為769,具體包括真正已經被使用掉的buffer和cache內存286,未使用的buffer內存62,未使用的cache內存421,即769 = 62 + 421 + 286;
free:表示為分配的物理內存為232;
buffers:已經被系統分配而未使用的buffer內存62;
cached:已經被分配而未使用的cache內存421;
第二行(-/+ buffers/cache);
used:已經被應用程序真正使用掉的buffer和cache內存為286;
free:可以被應用程序使用的內存為715,其中包括:已經分配而未使用的buffer內存62,已經分配而未使用的cache內存421,還沒有被分配的內存232,即: 715 = 62 + 421 + 232;
另:Linux中buffer與cache的區別:
buffer:要寫到硬碟上去的數據內存;
cache:讀取到內存中的數據內存;
② Linux裡面free -g命令作用是什麼
不帶任何選項運行 free 命令會顯示系統內存,包括空閑、已用、交換、緩沖、緩存和交換的內存總數。這個時候顯示的是位元組為單位。-G 參數加上去以後,所有顯示的內容就按照單位GB來顯示明白了嗎 查詢命令 看看《Linux就該這么學》 裡面有個專欄是 Linux命令大全(手冊
③ linux free命令
Mem:表示物理內存統計
-/+ buffers/cached:表示物理內存的緩存統計
Swap:表示硬碟上交換分區的使用情況,
第1行 Mem:
total:表示物理內存總量。
used:表示總計分配給緩存(包含buffers 與cache )使用的數量,但其中可能部分緩存並未實際使用。
free:未被分配的內存。
shared:共享內存,一般系統不會用到,這里也不討論。
buffers:系統分配但未被使用的buffers 數量。
cached:系統分配但未被使用的cache 數量。buffer 與cache 的區別見後面。
total = used + free
第2行 -/+ buffers/cached:
used:也就是第一行中的used - buffers-cached 也是實際使用的內存總量。
free:未被使用的buffers 與cache 和未被分配的內存之和,這就是系統當前實際可用內存。
④ linux伺服器使用free命令顯示如下情況,是不是需要增加內存了
沒關系,free雖然少,因為都被cached了。我的機器24G內存,可以cache22G,這是linux內存管理的機制。並不影響使用,如果linux發現內存不夠用,會自己釋放cache,增加內存的。
⑤ free命令buff和cache的區別
buff
cache
Buffer:緩沖區,用於存儲速度不同步的設備或優先順序不同的設備之間傳輸數據;通過buffer可以減少進程間通信需要等待的時間,當存儲速度快的設備與存儲速度慢的設備進行通信時,存儲慢的數據先把數據存放到buffer,達到一定程度存儲快的設備再讀取buffer的數據,在此期間存儲快的設備CPU可搜索以干其他的事情。
Cache:緩存區,是高速緩存,是位於CPU和主內存之間的容量較小但速度很快的存儲器,因為CPU的速度遠遠高於主內存的速度,CPU從內存中讀取數據需等待很長的時間,而
Cache保存著CPU剛用過的數據或循環使用的部分數據,這時從Cache中讀取數據會更快,減少了CPU等待的時間,提高了系統的性能。
Buffer:一般是用在寫入磁碟的,例如:某個進程要求多個欄位被讀入,當所有要求的欄位被讀入之前已經讀入的欄位會先放到buffer中。 Cache並不是緩存文件的,而是緩存塊的(塊是I/O讀寫最小的單元);Cache一般會用在I/O請求上,如果多個進程要訪問某個文件,可以把此文件讀入Cache中,這樣下一個進程獲取CPU控制權並訪問此文件直接從Cache讀取,提高系統性能。
⑥ linux查看內存條有幾根的命令
top命令能顯示系統內存。目前常用的Linux下查看內容的專用工具是free命令。下面是對內存查看free命令輸出內容的解釋:total:總計物理內存的大小。used:已使用多大。free:可用有多少。Shared:多個進程共享的內存總額。Buffers/cached:磁碟緩存的大小。
⑦ linux下free命令結果如下,誰能幫我通俗地解釋下對應的意思
內存總共大小(total),
使用量(used)
剩餘內存(free)
被OS buffer住的內存。 (buffers)
被OS cache的內存(cached)
buffer是用於存放要輸出到disk(塊設備)的數據的
,而cache是存放從disk上讀出的數據。這二者是為了提高IO性能的,並由OS管理。
⑧ linux下查看內存的命令
top命令能顯示系統內存。
目前常用的Linux下查看內容的專用工具是free命令。
下面是對內存查看free命令輸出內容的解釋:
total:總計物理內存的大小。
used:已使用多大。
free:可用有多少。
Shared:多個進程共享的內存總額。
Buffers/cached:磁碟緩存的大小。
⑨ linux free命令中buffer和cache的區別
linux free命令中buffer與cache的區別
~$ free
total used free shared buffers cached
Mem: 1025204 981636 43568 0 38244 387808
-/+ buffers/cache: 555584 469620
Swap: 1931256 162948 1768308 www.2cto.com
也可以通過$watch free看到動態信息
以上為free命令的輸出內容,從中可以得到當前系統內存使用情況.
系統的可用內存應該看第二行數據,
-buffers/cache=used-buffers-cached
+buffers/cache=free+buffers+cached
因為第一行的used包含了系統使用的buffer及cache,而free則沒包含buffer及cache,
這部分也是可以使用的部分.
如上所示555584為真正的系統使用內存情況,而469620為系統真正的可用內存情況.
下面介紹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.
buffer: www.2cto.com
緩沖區,一個用於存儲速度不同步的設備或優先順序不同的設備之間傳輸數據
的區域。通過緩沖區,可以使進程之間的相互等待變少,從而使從速度慢的設備讀入數據
時,速度快的設備的操作進程不發生間斷。
cache:
高速緩存,是位於CPU與主內存間的一種容量較小但速度很高的存儲器。由於
CPU的速度遠高於主內存,CPU直接從內存中存取數據要等待一定時間周期, Cache中保存
著CPU剛用過或循環使用的一部分數據,當CPU再次使用該部分數據時可從Cache中直接調
用,這樣就減少了CPU的等待時間,提高了系統的效率。Cache又分為一級Cache(L1 Cache)
和二級Cache(L2 Cache),L1 Cache集成在CPU內部,L2 Cache早期一般是焊在主板上,現
在也都集成在CPU內部,常見的容量有256KB或512KB L2 Cache。
當你讀寫文件的時候,Linux內核為了提高讀寫性能與速度,會將文件在內存中進行緩存,
這部分內存就是Cache Memory(緩存內存)。即使你的程序運行結束後,Cache Memory也不會
自動釋放。這就會導致你在Linux系統中程序頻繁讀寫文件後,你會發現可用物理內存會很少。
其實這緩存內存(Cache Memory)在你需要使用內存的時候會自動釋放,所以你不必擔心沒有
內存可用。如果你希望手動去釋放Cache Memory也是有辦法的。
如何釋放Cache Memory(緩存內存), 用下面的命令可以釋放Cache Memory:
To free pagecache
$sync; echo 1>/proc/sys/vm/drop_caches
To free dentries and inodes: www.2cto.com
$sync; echo 2>/proc/sys/vm/drop_caches
To free pagecache, dentries and inodes:
$sync; echo 3>/proc/sys/vm/drop_caches
注意,釋放前最好sync一下,防止丟失數據。
free命令中的buffer和cache:(它們都是佔用內存):
buffer : 作為buffer cache的內存,是塊設備的讀寫緩沖區
cache: 作為page cache的內存, 文件系統的cache