free命令详解

作者: | 更新日期:

简单记录一下free命令.

本文首发于公众号:天空的代码世界,微信号:tiankonguse

背景

free命令是linux下最常见的命令之一.
这里简单记录一下.

介绍

free用于显示系统内存的使用情况.

tiankonguse:~ $ free -m
             total       used       free     shared    buffers     cached
Mem:          3876       3549        326        323         24       1033
-/+ buffers/cache:       2491       1384
Swap:         4018        132       3886

第二行显示了从系统角度看来内存使用的情况.
第三行从用户角度显示内存信息,可用内存从数量上等于mem行used列值减去buffers和cached内存的大小.
第四行内存交换: 当可用内存少于额定值的时候,就会开始进行交换
这些信息都是从/proc/meminfo读到的.

字段含义

  • total 系统可用的内存大小, 数量上等于系统物理内存减去内核保留的内存
  • used 已经使用的内存数
  • free 空闲的内存数
  • shared 当前已经废弃不用
  • buffers: Buffer Cache内存数, 与某个块设备关联, 包含了文件系统元数据, 并且跟踪了块的变化
  • cached: Page Cache内存数,只包含了文件本身

缓存扩展

为了提高磁盘存取效率, Linux做了一些精心的设计, 除了对dentry进行缓存(用于VFS,加速文件路径名到inode的转换), 还采取了两种主要Cache方式:Buffer Cache和Page Cache。
前者针对磁盘块的读写,后者针对文件inode的读写。
这些Cache有效缩短了 I/O系统调用(如read,write,getdents)的时间。

因为Linux会将暂时不使用的内存作为文件和数据缓存,以提高系统性能,当应用程序需要这些内存时,系统会自动释放.

使用

大小

  • -b B为单位
  • -k K为单位
  • -m M为单位
  • -g G为单位
  • -h 自动按合适的单位显示

其他

-s按指定时间显示一次内容.
-c显示指定数量次数

tiankonguse:~ $ free -m -c 3 -s 1
             total       used       free     shared    buffers     cached
Mem:          3876       3589        286        364         29       1085
-/+ buffers/cache:       2474       1401
Swap:         4018        132       3886

             total       used       free     shared    buffers     cached
Mem:          3876       3590        285        364         29       1086
-/+ buffers/cache:       2474       1401
Swap:         4018        132       3886

             total       used       free     shared    buffers     cached
Mem:          3876       3590        285        364         29       1086
-/+ buffers/cache:       2475       1401
Swap:         4018        132       3886

本文首发于公众号:天空的代码世界,微信号:tiankonguse
如果你想留言,可以在微信里面关注公众号进行留言。

关注公众号,接收最新消息

tiankonguse +
穿越