【linux】free命令中cached和buffers的區別

不一樣的天空w發表於2020-05-14

https://www.cnblogs.com/chenpingzhao/p/5161844.html


在linux下使用free命令檢視記憶體使用情況,有buffers和cached兩項,以下是它們的區別:

cached是cpu與記憶體間的,buffer是記憶體與磁碟間的,都是為了解決速度不對等的問題

buffer是即將要被寫入磁碟的,而cache是被從磁碟中讀出來的

buffer :作為buffer cache的記憶體,是塊裝置的讀寫緩衝區 

cache:作為page cache的記憶體, 檔案系統的cache 

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


buffers是為塊裝置設計的緩衝。比如磁碟讀寫,把分散的寫操作集中進行,減少磁碟I/O,從而提高系統效能。比如入隨身碟裡cp一個檔案,但是隨身碟讀寫指示燈未閃動,過了一會兒才閃動。解除安裝時會清空緩衝,所以有時解除安裝一個裝置需要等待幾秒。


cached是快取讀取過的內容,下次再讀時,如果在快取中命中,則直接從快取讀取,否則讀取磁碟。由於快取空間有限,過一段時間以後沒用的快取會被移動到swap裡面,所以有時看到實體記憶體還有很多,swap就被利用了。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31397003/viewspace-2692153/,如需轉載,請註明出處,否則將追究法律責任。

相關文章