Linux 中 free 命令可以顯示 linux 系統中空閒的、已用的實體內存及 swap 內存, 及被核心使用的 buffer. 在 Linux 系統監控的工具中,free 命令是最經常使用的命令之一.
命令格式 :
free [-b|-k|-m|-g] [-l] [-o] [-t] [-s delay] [-c count] [-V]
命令功能 :
free 命令顯示系統使用和空閒的內存情況, 包括實體內存、互動區內存 (swap) 和核心緩衝區內存, 共享內存將被忽略.
命令引數 :
-b/-k/-m/g ==> 分別以 Byte/KB/MB/GB 為單位顯示內存使用情況;
-l ==> 顯示詳細的 low 和 high 的內存統計情況;
-o ==> 不顯示 WordPress 加速緩存區 (-/+ buffers/cache);
-t ==> 顯示內存總和列;
-s
-c
-V ==> 顯示版本資訊;
free 數值説明 :
total ==> 總計實體內存的大小;
used ==> 已使用內存大小;
free ==> 空閒內存大小;
shared ==> 多個程序共享的內存總額;
buffer/cached ==> 磁碟 WordPress 加速緩存的大小;
注意:
第二行 (Mem) 的 used/free 與第三行 (-/+ buffer/cache) 的 used/free 區別 : “使用角度”
第二行是從”OS” 的角度來看, 因為對於 OS,buffer/cache 都是屬於被使用, 所以它的可用內存是 1235900, 已用內存是 686824, 其中包括, 核心 (OS) 使用+Application(應用程式) 使用+buffers+cached.
第三行所指的是從 “應用程式” 角度來看, 對於應用程式來説,buffer/cached 是等於可用的, 因為 buffer/cached 是為了提高檔案讀取的效能, 當應用程式需在用到內存的時候,buffer/cached 會很快地被回收. 所以從應用程式的角度來説, 可用內存=系統 free +buffers + cached. 例如本機 : 1725388=1235932+48736+440752.
buffers 與 cached 區別 :
cached : WordPress 加速緩存內存, 是位於 CPU 與主內存間的一種容量較小但速度很高的儲存器;
buffers : 緩衝區, 一個用於儲存速度不同步的裝置或優先順序不同的裝置之間的傳輸資料的區域;
兩者都是 RAM 中的資料, 簡單來説,buffers 是即將被寫入磁碟的, 而 cache 是被從磁碟中讀出來的.
buffers 是由各種程序分配的, 由程序和系統一起管理. 被用在如輸入佇列等方面, 一個簡單的例子, 如某個程序要求有多個欄位讀入, 在所有欄位被讀入完整之前, 程序把先前讀入的欄位放在 buffer 中儲存;
cached 經常被用在磁碟的 I/O 請求上, 如果有多個程序都要訪問某個檔案, 於是該檔案便被做成 cache 以方便下次被訪問, 這樣可提供系統效能;
綜上所述可以理解為 cache 系統管理,buffer 由程序 check 系統一起管理.