我們用free、top等相關能夠查詢到當前內存的使用情況的命令時,總會有一個buff/cache讓我們很困惑。
buffer
即寫如磁盤時,先保存到磁盤緩沖區(buffer),然后再寫入到磁盤。
cache
即讀磁盤時,數據從磁盤讀出后,暫留在緩沖區(cache),為后續程序的使用做准備。
如何划分buffer/cache(已使用 or 空閑)
- 操作系統的角度:這塊內存確實被操作系統使用了。
- 用戶角度:如果用戶要使用,這塊內存是可以很快被回收而被用戶空間程序使用,因此從用戶角度而言這塊內存應被划為空閑狀態。
Linux這種機制的好處
這是Linux一種非常優秀的設計,目的就是為了提升磁盤IO的性能,從低速的塊設備上讀取的數據會暫時保存在內存中,即使數據在當時已經不再需要了,但在應用程序下一次訪問該數據時,它可以從內存中直接讀取,繞開了低速的塊設備,從而提高系統的整體性能。
為了提高系統性能和不浪費內存,linux把多的內存做了cache,以提高io速度.你的那些內存並沒有被占用。