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)。

Linux free命令使用及解析的更多相关文章

  1. Linux常用命令,目录解析,思维导图

    文章目录 下载地址 Linux常用命令 linux系统常用快捷键及符号命令 Linux常用Shell命令 Linux系统目录解析 Shell Vi全文本编辑器 Linux安装软件 Linux脚本编制编 ...

  2. linux mknod命令解析

    linux mknod命令解析 http://www.cnblogs.com/cobbliu/archive/2011/07/05/2389014.html mknod:make node  生成设备 ...

  3. 详细解析Linux scp命令的应用

    详细解析Linux scp命令的应用 Linux命令有人统计说是有4000多个,Linux scp命令是用于Linux之间复制文件和目录,这里详细介绍scp命令使用和参数. AD: Linux scp ...

  4. LINUX命令LS -AL 解析

    LINUX命令LS -AL 解析 linux命令ls -al 解析 ls是“list”的意思,与早期dos的命令dir功能类似.参数-al则表示列出所有的文件,包括隐藏文件,就是文件前面第一个字符为. ...

  5. 详细解析Linux scp命令的应用(转载)

    转自:http://os.51cto.com/art/201003/187301.htm Linux scp命令用于Linux之间复制文件和目录,具体如何使用这里好好介绍一下,从本地复制到远程.从远程 ...

  6. Linux入门:运行级别解析

    Linux入门:运行级别解析   一.查看当前运行级别 Ubuntu中,runlevel命令 可以查看当前运行级别: CentOS中,who -r 命令查看当前运行级别:   www.2cto.com ...

  7. linux全部命令

    linux全部命令 一.安装和登陆命令1.进入图形界面startx 2.进入图形界面init 5 3.进入字符界面init 3 4.登陆login 5.关机poweroff-p 关闭机器的时候关闭电源 ...

  8. linux常用命令加实例大全

    目  录引言    1一.安装和登录    2(一)    login    2(二)    shutdown    2(三)    halt    3(四)    reboot    3(五)    ...

  9. linux source命令与export命令的区别

    shell与export命令 用户登录到Linux系统后,系统将启动一个用户shell.在这个shell中,可以使用shell命令或声明变量,也可以创建并运行shell脚本程序.运行shell脚本程序 ...

随机推荐

  1. vue2.0的生命周期

    生命周期先上图 什么是生命周期 Vue实例有一个完整的生命周期,也就是从开始创建.初始化数据.编译模板.挂载Dom.渲染→更新→渲染.卸载等一系列过程, 我们称这是Vue的生命周期.通俗说就是Vue实 ...

  2. 部署openfire到linux环境下

    1.java环境部署:具体参考 http://blog.csdn.net/gufachongyang02/article/details/45337379 2.ant环境部署: 具体参考 http:/ ...

  3. wcout输出中文不显示

    准备使用UNICODE来写个控制台测试程序发现,cout无法输出UNICODE的中文字符.查找c++标准看到,其提供了wcin.wcout.wcerr.wclog用于处理wchar_t字符的输入输出. ...

  4. golang初始化结构体数组

    最近组里新项目要求用go来写,没办法只能边看文档边写代码,今天遇到郁闷的问题,查了好久最终发现居然是一个标点符号的导致的,遂纪录之 刚刚给一个接口写单元测试时想初始化一个结构体数组,然后遍历该数组并建 ...

  5. SQL Server 2008 R2升级到SQL Server 2012 SP1

    1.建议对生产环境对的数据库升级之前做好备份,以防不测. 2.从SQL Server 2008 R2 升级到SQL Server 2012 SP1,需要先安装SQL Server 2008 R2 的S ...

  6. python 字符串编码 str和unicode 区别以及相互转化 decode('utf-8') encode('utf-8')

  7. poj1182(种类并查集好题)

    不得不说,我得感谢@驱动幽灵百鬼夜行小肆,正是因为看明白了他给出的解析,我才完全弄懂种类并查集的,这里,我也不想去改其他的,就直接引用他的解题报告吧 转载:http://blog.csdn.net/c ...

  8. 基于jQuery个性圆圈倒计时特效

    基于jQuery个性圆圈倒计时特效里面包含十几款不用效果的jQuery倒计时特效下载.效果图如下: 在线预览   源码下载 实现的代码. html代码: <section class=" ...

  9. 纯CSS3打造非常炫的加载动画

    纯css3打造的一款非常炫的加载图.用在需要一定时间加载的地方非常合适.先上效果图: 点击这里在线预览 代码非常简单.没有用任何javascript代码.纯css3实现. html代码: <di ...

  10. WPF自定义行为Behavior,实现双击控件复制文本

    WPF引用xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity& ...