天天看點

Linux記憶體 Buffer和Cache的差別及Linux中檢視記憶體的指令free

一.

Linux中檢視記憶體的指令free

(1) free檢視的内在預設是以kb為機關,如果想以MB為機關檢視用指令 free -m    

二.Linux記憶體 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.

2.1 Cache

       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。

2.2 Buffer

       Buffer:緩沖區,一個用于存儲速度不同步的裝置或優先級不同的裝置之間傳輸資料的區域。通過緩沖區,可以使程序之間的互相等待變少,進而使從速度慢的裝置讀入資料時,速度快的裝置的操作程序不發生間斷。

在Free指令中顯示的buffer和cache,它們都是占用記憶體:

       buffer : 作為buffer cache的記憶體,是塊裝置的讀寫緩沖區,更靠近儲存設備,或者直接就是disk的緩沖區。

       cache: 作為page cache的記憶體, 檔案系統的cache,是memory的緩沖區

       如果 cache 的值很大,說明cache住的檔案數很多。如果頻繁通路到的檔案都能被cache住,那麼磁盤的讀IO 必會非常小。

參考:

http://blog.csdn.net/tianlesoftware/article/details/6459044

繼續閱讀