linux系统使用中会经常用到"free -m"命令查看系统内存情况,下面我们学习下这个命令列出来的数据怎么看。
free -m
Mem:表示物理内存统计[oracle@iZ~]$ free -m
total used free shared buffers cachedMem: 64427 63259 1168 0 291 59909-/+ buffers/cache: 3059 61368Swap: 0 0 0
-/+ buffers/cached:表示物理内存的缓存统计
Swap:表示硬盘上交换分区的使用情况,
第1行 Mem:
total:表示物理内存总量。
used:表示总计分配给缓存(包含buffers 与cache )使用的数量,但其中可能部分缓存并未实际使用。
free:未被分配的内存。
shared:共享内存,一般系统不会用到,这里也不讨论。
buffers:系统分配但未被使用的buffers 数量。
cached:系统分配但未被使用的cache 数量。buffer 与cache 的区别见后面。
total = used + free
第2行 -/+ buffers/cached:
used:也就是第一行中的used - buffers-cached 也是实际使用的内存总量。
free:未被使用的buffers 与cache 和未被分配的内存之和,这就是系统当前实际可用内存。
说明:这里要分两部分看:-buffers/cache 和+buffers/cache
(-buffers/cache) ,即used内存数:第一部分Mem行中的 used – buffers – cached
(+buffers/cache),即free内存数: 第一部分Mem行中的 free + buffers + cached
可见-buffers/cache反映的是被程序实实在在吃掉的内存,而+buffers/cache反映的是可以挪用的内存总数。