首頁 > 軟體

Linux free命令使用及解析

2020-06-16 17:38:53

1. 命令格式

free [引數]

2. 命令功能

free 命令顯示系統使用和空閒的記憶體情況,包括實體記憶體、互動區記憶體(swap)和核心緩衝區記憶體。共用記憶體將被忽略

3. 命令引數

-b  以Byte為單位顯示記憶體使用情況。 
-k  以KB為單位顯示記憶體使用情況。 
-m  以MB為單位顯示記憶體使用情況。
-g   以GB為單位顯示記憶體使用情況。
-h   自動轉換單位(最常用)
-o  不顯示緩衝區調節列。 
-s <間隔秒數>  持續觀察記憶體使用狀況。 
-t  顯示記憶體總和列。 
-V  顯示版本資訊。 

4. 輸出解析

[zhangchengfei@Master:~]$free
             total       used       free     shared    buffers     cached
Mem:      16079364   14901460    1177904    5278136      65408    5921568
-/+ buffers/cache:    8914484    7164880
Swap:     12223484    1388724   10834760

free命令的所有輸出值都是從/proc/meminfo中讀出的。這裡free的輸出一共有四行,下面依次解釋這幾行:

4.1 Mem行解析

這行輸出是從作業系統(OS)來看的,也就是說,從OS的角度來看,計算機上一共有:
16079364KB(預設單位為KB)實體記憶體;在這些實體記憶體中有14901460KB被使用;還用1177904KB是可用的;

這裡有一個等式:

Mem.total = Mem.used + Mem.free

shared表示被幾個進程共用的記憶體的,用於IPC,現在已經deprecated,但我的機器上還是顯示了,主要取決於free命令是怎麼實現的。

buffer表示被系統buffer的記憶體,用於存放要輸出到disk(塊裝置)的資料。
cached表示被系統cache的記憶體,用於存放從disk上讀入的資料。

下面是英文原版解釋,這二個都是為了提高IO效能的。

A buffer is something that has yet to be “written” to disk.
A cache is something that has been “read” from the disk and stored for later use.

釋放掉被系統cache占用的資料;

echo 3>/proc/sys/vm/drop_caches

4.2 -/+ buffers/cache行解析

該行是從應用程式的角度看系統記憶體的使用情況。

used表示應用程式認為系統已經用掉多少記憶體;
free表示應用程式認為系統還有多少記憶體;

因為被系統cachebuffer占用的記憶體可以被快速回收,這裡都算在free裡面。

這裡有兩個等式:

(-/+buffer/cache).used = Mem.used - Mem.buffers - Mem.cached
(-/+buffer/cache).free = Mem.free + Mem.buffers + Mem.cached

4.3 Swap行解析

該行為交換分割區的資訊,分別是交換的總量(total),使用量(used)和有多少空閒的交換區(free)。

【完】

本文永久更新連結地址http://www.linuxidc.com/Linux/2016-07/132856.htm


IT145.com E-mail:sddin#qq.com