跳转至

free 命令


2015-03-31 by dongnan

举个栗子

iscsi 服务器内存使用状态

free -m
             total       used       free     shared    buffers     cached
Mem:         15901      15740        160          0      14980         35
-/+ buffers/cache:        723      15177
Swap:        15999          0      15999

注意 buffers 字段。

结果分析

第1行 Mem

  • total:表示物理内存总量。
  • used:表示总计分配给缓存包含 (buffers 与cache)使用的数量,但其中可能部分缓存并未实际使用。
  • free:系统未分配的内存。
  • shared:共享内存用于在UNIX 环境下不同进程之间共享数据,是进程间通信的一种方法。
  • buffers:系统分配但未被使用的buffers 数量。
  • cached:系统分配但未被使用的cache 数量。
  • buffer 与cache 的区别见

第2行 -/+ buffers/cached

  • used:也就是第一行中的used - buffers-cached 也是实际使用的内存总量。
  • free:未被使用的buffers 与cached 和未被分配的内存之和,这就是系统当前实际可用内存(free+buffers+cached)。

因为buffers和cached是系统为了提高性能申请的内存数,实际上当应用程序需要此功能时,是可以使用这些内存的,所以对应用程序来说,这些内存也是可以使用的。

第3行 swap

  • 略...

buffer 与 cache 的区别

  • buffer (缓冲): 作为buffer cache的内存,是块设备的读写缓冲区。
  • cache (缓存): 作为page cache的内存, 文件系统的cache。

如果 cache 的值很大,说明cache住的文件数很多。如果频繁访问到的文件都能被cache住,那么磁盘的读IO会非常小。

命令参数

  • -m:以M为单位查看内存使用情况(默认为kb)。
  • -b:以字节为单位查看内存使用情况。

参考

linux之free命令

回到页面顶部