linux free命令解读

时间:2021-12-29 08:35:23
$ free -m

             total       used       free     shared    buffers     cached
Mem: 1002 769 232 0 62 421
-/+ buffers/cache: 286 715
Swap: 1153 0 1153

第一部分Mem行:

  • total 内存总数: 1002M
  • used 已经使用的内存数: 769M
  • free 空闲的内存数: 232M
  • shared 当前已经废弃不用,总是0
  • buffers Buffer 缓存内存数: 62M
  • cached Page 缓存内存数:421M

关系:total(1002M) = used(769M) + free(232M)

第二部分(-/+ buffers/cache):

  • (-buffers/cache) used内存数:286M (指的第一部分Mem行中的used – buffers – cached)
  • (+buffers/cache) free内存数: 715M (指的第一部分Mem行中的free + buffers + cached)

可见-buffers/cache反映的是被程序实实在在吃掉的内存,而+buffers/cache反映的是可以挪用的内存总数.

我想大家看了上面,还是很晕.第一部分(Mem)与第二部分(-/+ buffers/cache)的结果中有关used和free为什么这么奇怪.

其实我们可以从二个方面来解释.

  • 对操作系统来讲是Mem的参数.buffers/cached 都是属于被使用,所以它认为free只有232.
  • 对应用程序来讲是(-/+ buffers/cach).buffers/cached 是等同可用的,因为buffer/cached是为了提高程序执行的性能,当程序使用内存时,buffer/cached会很快地被使用.