linux 記憶體中Buffer和Cache的區別

2021-10-05 03:51:33 字數 647 閱讀 4365

具體怎麼理解?

通過實驗發現,

比較寫資料到檔案和寫資料到磁碟

比較從檔案中讀取資料和從磁碟中讀資料:

實驗資料參考:

簡單理解:buffer 是對磁碟資料的快取,而 cache 是檔案資料的快取。

同學@geek_5258f8 的解答:

理論上,乙個檔案讀首先到block buffer, 然後到page cache。有了檔案系統才有了page cache。在老的linux上這兩個cache是分開的。那這樣對於檔案資料,會被cache兩次。這種方案雖然簡單,

但低效。後期linux把這兩個cache統一了。對於檔案,page cache指向block buffer,對於非檔案則是block buffer。這樣就如檔案實驗的結果,檔案操作,只影響page cache,而raw操作,則只影響buffer. 比如一此vm虛擬機器,則會越過file system,只接操作 disk, 常說的direct io.

linux記憶體中buffer和 cached的比較

經常遇到一些剛接觸linux的新手會問記憶體占用怎麼那麼多?在linux中經常發現空閒記憶體很少,似乎所有的記憶體都被系統占用了,表面感覺是記憶體不夠用了,其實不然。這是linux記憶體管理的乙個優秀特性,在這方面,區別於windows的記憶體管理。主要特點是,無論物理記憶體有多大,linux 都將...

Linux記憶體buffer和cache的區別

記憶體使用說明 free 命令相對於top 提供了更簡潔的檢視系統記憶體使用情況 root rac1 free total used free shared buffers cached mem 1035108100898426124 0 124212 413000 buffers cache 47...

Linux記憶體機制 Buffer和Cache

今天twitter上關於buffer和cache討論得蠻火的,被各種說話一攪和,有點亂了,就乾脆整理一下。首先從翻譯上,buffer應該翻譯為 緩衝 cache應該翻譯為 快取 兩個完全不是乙個東西。在硬體這一層看,buffer應該為記憶體,cache為cpu整合的告訴快取。buffer為了讓不同速...