linux free命令输出含义

By | 04/05/2015
这篇文章写的

身为一名“兼职”运维人员,需要对linux常用命令熟练应用。比如 netstat / tcpdump / free 等。

查看linux中内存使用有许多命令, top / vmstat / htop / /proc/meminfo / free 等。

free 命令作为一种简单的查看内存的方式,
在linux系的服务器上几乎都有默认安装,它的参数也较少。

直接在命令行执行 free 就可以看到内存使用的情况:

[cipher@Eleanor ~]$ free
             total       used       free     shared    buffers     cached
Mem:       4048052    3609736     438316       1144     224200    1085376
-/+ buffers/cache:    2300160    1747892
Swap:      4194300      82252    4112048

将结果按照 MB 显示:

[cipher@Eleanor ~]$ free -m
             total       used       free     shared    buffers     cached
Mem:          7858       7344        514          0        412       3116
-/+ buffers/cache:       3815       4042
Swap:         5855        511       5344

那么问题就来了,简简单单地一个命令,我只是想查看内存使用量是多少,
为何要输出这么多信息?这些信息分别代表着什么?

这就需要先问一个问题,linux内存使用包括哪些?

  • physical

    RAM的大小

  • swap

    交换分区

  • buffer/Cache

    内核使用

Hint

buffer和Cache有何区别? [1]

buffer是特定程序用来临时存储数据的位置,这些数据存储不可能被其它进程访问。
举个例子,通过网络发送大量数据时,网卡只会以恒定的速率发送部分数据,
而大部分数据都会被存储在buffer中等待发送。

而Cache是为提高某些访问频率较高的数据的访问速度的数据存放地址。

Cache能被重复使用而buffer只会被使用一次。

buffer和Cache相同之处在于两者都是用来 临时存储 数据的。

我们把这个结果看作一个表格:

         0                   1            2          3          4          5          6
0                        total         used       free     shared    buffers     cached
1    Mem:                7858          7344        514          0        412       3116
2    -/+ buffers/cache:                3815       4042
3    Swap:               5855           511       5344
  • F[1][1]:物理内存总量
  • F[1][2]:表示总计分配给缓存(包含buffers 与cache )使用的数量,但其中可能部分缓存并未实际使用。
  • F[1][3]:未被分配的内存。
  • F[1][4]:共享内存,一般系统不会用到,这里也不讨论。
  • F[1][5]:系统分配但未被使用的buffers 数量。
  • F[1][6]:系统分配但未被使用的cache 数量。
  • F[1][1] = F[1][2] + F[1][3]
  • F[2][2] = F[1][2] – F[1][5] – F[1][6]
  • F[2][3] = F[1][3] + F[1][5] + F[1][6]

由此可见,F[2][3]可简单地表明当前系统剩余可用的总内存数。

最后,我画了一张草图来表明这几个项之间的关系:

http://7vijbz.com1.z0.glb.clouddn.com/blog_linux_free_graph_s.jpg

参考文献

[1] Difference between buffers and Cache

发表评论

电子邮件地址不会被公开。 必填项已用*标注