初学shell试着计算内存空闲率。

首先要采集到内存使用信息,内存信息可以从这里得到/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%吧。不论怎么样,大概实现预期目标。在高手眼中这就是垃圾啊!!

采集数据中发现,空闲内存变化比较大,列数也不固定。这方法真的很垃圾呢!

不过是第一次练习。不要给板砖哦!