具体的命令是:
free 命令来获取内存使用的情况。
具有如下一些参数:
参 数:
-b 以Byte为单位显示内存使用情况。
-k 以KB为单位显示内存使用情况。
-m 以MB为单位显示内存使用情况。
-o 不显示缓冲区调节列。
-s <间隔秒数> 持续观察内存使用状况。
-t 显示内存总和列。
-V 显示版本信息。
常用操作:
free //以KB为单位,显式系统内存使用情况 free -ml -s 1 //每秒以M为单位,显示系统内存详细使用情况。其中是L不是数字是小写字母。 free -c 4 -s 2 //为KB为单位,每2秒显式系统内存使用情况,一共显示4次
Mem:表示物理内存统计
total:表示物理内存总量(total = used + free) used:表示总计分配给缓存(包含buffers 与cache )使用的数量,但其中可能部分缓存并未实际使用。 free:未被分配的内存。 shared:共享内存,一般系统不会用到,这里也不讨论。 buffers:系统分配但未被使用的buffers 数量。 cached:系统分配但未被使用的cache 数量。
-/+ buffers/cache:表示物理内存的缓存统计
used2:也就是第一行中的used – buffers-cached 也是实际使用的内存总量。 //used2为第二行 free2= buffers1 + cached1 + free1 //free2为第二行、buffers1等为第一行 free2:未被使用的buffers 与cache 和未被分配的内存之和,这就是系统当前实际可用内存。
Swap:表示硬盘上交换分区的使用情况,这里我们不去关心。 系统的总物理内存:255268Kb(256M),但系统当前真正可用的内存b并不是第一行free 标记的 16936Kb,它仅代表未被分配的内存。
我在使用的过程中,是这样使用的:
free -m | awk 'NR==3 {print $NF}' #获得空闲的内存
NR是akw命令的参数,代表的是行数记录号,也就是说我查找的内存,在结果的第三行出现,那我就在第三行中查找相关的数据。
NF是字段数量变量,如果一行有三个字段,那就这个NF==3。
另一种方法:
free -m | grep buffers/ | awk '{print $NF}'