您的位置:首页 > 其它

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

2017-06-28 19:38 253 查看
具体的命令是:

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

具体可见。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐