歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux綜合 >> 學習Linux

Linux free命令使用及解析

Linux free命令使用及解析


Linux free命令使用及解析


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://xxxxxx/Linuxjc/1141039.html TechArticle

Copyright © Linux教程網 All Rights Reserved