通过free命令获得系统剩余的内存大小

来源:互联网 发布:淘宝双十一抢手机 编辑:程序博客网 时间:2024/06/05 19:03

具体的命令是:

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}'


具体可见。


原创粉丝点击