來源:
linux下free命令詳解
在 free 命令的輸出中,有一個 free 列,同時還有一個 available 列。這二者到底有何區別?
free 是真正尚未被使用的物理內存數量。至於 available 就比較有意思了,它是從應用程序的角度看到的可用內存數量。Linux 內核為了提升磁盤操作的性能,會消耗一部分內存去緩存磁盤數據,就是我們介紹的 buffer 和 cache。所以對於內核來說,buffer 和 cache 都屬於已經被使用的內存。當應用程序需要內存時,如果沒有足夠的 free 內存可以用,內核就會從 buffer 和 cache 中回收內存來滿足應用程序的請求。所以從應用程序的角度來說,available = free + buffer + cache。請注意,這只是一個很理想的計算方式,實際中的數據往往有較大的誤差。