Linux&&FREE命令詳解
各行含義詳解
第一行的輸出是從操作系統(OS)的角度來看的
計算機上一共有: (Mem.total)8133084KB(缺省時free的單位爲KB)物理內存; 在這些物理內存中有(Mem.used)6854048KB被使用了; 還用(Mem.free)1279036KB是可用的。
其中,Mem.total = Mem.used + Mem.free
- Mem.shared:表示被幾個進程共享的內存的,現在已經deprecated,其值總是0(當然在一些系統上也可能不是0,主要取決於free命令是怎麼實現的)。
- Mem.buffers:表示被OS buffer住的內存,buffer是用於存放要輸出到disk(塊設備)的數據的.
- Mem.cached:表示被OS cache的內存,cache是存放從disk上讀出的數據
Linux和其他成熟的操作系統(例如windows),爲了提高IO read的性能,總是要多cache一些數據,這也就是爲什麼Mem.cached比較大,而Mem.free比較小的原因。
第二行是從一個應用程序的角度看系統內存的使用情況
- buffers/cache.used:表示一個應用程序認爲系統被用掉多少內存.
+ buffers/cache.free:表示一個應用程序認爲系統還有多少內存.
因爲被系統cache和buffer佔用的內存可以被快速回收,所以通常+ buffers/cache.free比- buffers/cache.used會大很多。
- buffers/cache.used = Mem.used - Mem.buffers - Mem.cached
+ buffers/cache.free = Mem.free + Mem.buffers + Mem.cached
free命令的所有輸出值都是從/proc/meminfo中讀出的
釋放掉被系統cache佔用的數據(Mem.cached)
echo 3 > /proc/sys/vm/drop_caches
第四行爲交換區的信息
分別是交換的總量(Swap.total)2097148KB(total),使用量(Swap.used)122836KB(used)和有多少空閒的交換區(Swap.free)1974312(free)
命令參數介紹
-b 以Byte爲單位顯示內存使用情況。
-k 以KB爲單位顯示內存使用情況。
-m 以MB爲單位顯示內存使用情況。
-g 以GB爲單位顯示內存使用情況。
-o 不顯示緩衝區調節列。
-s <間隔秒數> 持續觀察內存使用狀況。
-t 顯示內存總和列。
-V 顯示版本信息。
參考資料:
https://www.cnblogs.com/kex1n/p/6010496.html