天天看點

Linux中的buff/cache記憶體

我們用free、top等相關能夠查詢到目前記憶體的使用情況的指令時,總會有一個buff/cache讓我們很困惑。

buffer

即寫如磁盤時,先儲存到磁盤緩沖區(buffer),然後再寫入到磁盤。

cache

即讀磁盤時,資料從磁盤讀出後,暫留在緩沖區(cache),為後續程式的使用做準備。

如何劃分buffer/cache(已使用 or 空閑)

  1. 作業系統的角度:這塊記憶體确實被作業系統使用了。
  2. 使用者角度:如果使用者要使用,這塊記憶體是可以很快被回收而被使用者空間程式使用,是以從使用者角度而言這塊記憶體應被劃為空閑狀态。

Linux這種機制的好處

這是Linux一種非常優秀的設計,目的就是為了提升磁盤IO的性能,從低速的塊裝置上讀取的資料會暫時儲存在記憶體中,即使資料在當時已經不再需要了,但在應用程式下一次通路該資料時,它可以從記憶體中直接讀取,繞開了低速的塊裝置,進而提高系統的整體性能。

為了提高系統性能和不浪費記憶體,linux把多的記憶體做了cache,以提高io速度.你的那些記憶體并沒有被占用。