您的位置:首页 > 运维架构 > Linux

linux free命令使用及解析

2016-05-25 08:20 471 查看

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
被使用;还用
1177904
KB是可用的;

这里有一个等式:

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
表示应用程序认为系统还有多少内存;

因为被系统
cache
buffer
占用的内存可以被快速回收,这里都算在
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)。

【完】
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息