shell计算内存空闲率的方法分享

发布时间:2020-02-05编辑:脚本学堂
本文介绍下,用shell脚本计算内存的空闲率的方法,有需要的朋友参考下。

接触shell不久,尝试计算内存的空闲率。
 
首先,采集内存使用信息。
linux中,内存信息可以从文件/proc/meminfo中获取。

例如:
 

复制代码 代码示例:
[root@www ~]# cat /proc/meminfo |head -n10
 MemTotal:      389364 kB
 MemFree:        10824 kB
 Buffers:        18096 kB
 Cached:        245308 kB
 SwapCached:          0 kB
 Active:        183944 kB
 Inactive:      171684 kB
 HighTotal:          0 kB
 HighFree:            0 kB
 LowTotal:      389364 kB
 [root@www ~]#
 
[root@www ~]# cat /proc/meminfo |head -n1|cut -d " " -f8
 389364
 [root@www ~]# cat /proc/meminfo |head -n2|tail -n1|cut -d " " -f10
 10452

通过cut可以得到内存总量和闲置内存数值。
通过算数运算:闲置/总量=闲置率。
 
注意,以下这行命令,执行后结果为“0”:
 

复制代码 代码示例:
[root@www ~]# echo `cat /proc/meminfo |head -n2|tail -n1|cut -d " " -f11` / `cat /proc/meminfo |head -n1|cut -d " " -f8`|bc
0

解决方法:
将闲置量X100后在和总量相除。
 

复制代码 代码示例:
[root@www ~]# echo `cat /proc/meminfo |head -n2|tail -n1|cut -d " " -f11`*100 / `cat /proc/meminfo |head -n1|cut -d " " -f8`|bc
 1

1就是1%吧。采集数据中发现,空闲内存变化比较大,列数也不固定。
哪位有好的方法,欢迎分享下。