free命令
此命令用于顯示系統內存的使用情況,包括總體內存、已經使用的內存。
還可用于顯示系按內核使用的緩沖區,包括緩沖(buffer)和緩存(cache)等。
使用方式:
free
命令輸出:
[root@fdb2e117e3a5 /]# free -h
total used free shared buff/cache available
Mem: 2.0G 318M 96M 788K 1.5G 1.5G
Swap: 1.0G 0B 1.0G
解析
內存并不只有占用和空閑兩個簡單狀態,我們從上面的輸出中發現其中有buffers和cached的數據,從字面意義上來講,都是緩存,只有弄清楚緩存了什么數據才能有效地區分這兩種緩記存。
(1)buffers一般都不太大,在一個通用的Linux系統中一般為幾十到幾百MB字節,用于存儲磁盤塊設備的元數據,比如哪些塊屬于哪些文件、文件的權限、目錄等信息。
(2)cached會很大,一般都在GB字節以上,用于存儲讀寫文件的頁。當對一個文件進行讀時,會取磁盤文件頁放到其內存區域,然后從內存中進行讀取。
在寫入一個文件時,會先寫到其緩存中,并將相關的頁面標記為“dirty”。
cached隨著讀寫磁盤的多少而自動地增加或減少,這也取決于物理內存是否夠用,如果應用使用的物理內存較多,則操作系統會適當縮小 cached來保證用戶進程對內存的需要。