linux 操作系統中buffer 和 cache 的作用


Buffer cache (它們都是占用內存)。

Buffer: 系統分配但未被使用的buffer 數量。

  

Buffer 緩沖區:  是塊設備的讀寫緩沖區,buffer I/O 緩存,用於內存和硬盤(或其他 I/O設備)之間的數據交換的速度而設計的。


 分析:

1通常在寫一個非常大的文件,文件會被分成一個個的小 block-->一直往內存上寫-->然后再寫入磁盤,,  這個文件非常的大,但是會被分成一個個小的block塊,每次都一點一點的-->寫入內存-->再寫入磁盤,  這樣的效率較慢 。

2 這種情況下,內存就會攢足一次大的block-->再寫入磁盤,這樣的話就不會有第一種情況里的延遲。 這就是buffer.

 


 Cache高速緩存 cache是高速緩存,用於cpu與內存之間的緩沖。主要原因是cpumemory,由於cpu快,memory跟不上,且有些值使用次數多,所以放入cache中,主要目的是,使用內存來緩存可能被再次訪問的數據。  Cache 經常被使用在I/O 請求上。為提高系統性能。

從硬盤上讀內容時的情況:

例如 要打開一個非常大的視頻文件從硬盤-->讀到內存--->顯示出來。 第一次打開這個文件的時候需要等待一些時間(視電腦性能),然后第二次打開的時候會比第一次流暢許多。

 例如:小明第一次看這個10G的視頻文件,從硬盤-->內存-->顯示,他看完以后就關機了,內存也就清空空間了,但是他回頭一想,電影中的某個情節想再回顧一下,這個時候,從硬盤-->讀到內存 ,這個時候的內存沒有再次從硬盤讀取,而是之前關機有緩存,讀取的時間可能比之前流暢,這就是cache.為了提高文件讀取效率的做法。

 

如果 cache 的值很大,說明cache住的文件數很多。如果頻繁訪問到的文件都能被cache住,那么磁盤的讀IO 必會非常小。

 


現在做個實驗:

現在buff/cache  是100

 使用cat  b.txt  使文件從硬盤往內存上讀:

Buffer/cache 增加到103

  使用內存,也就是在使用buffer   和 cache 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM