#!/bin/sh

rate_min=10
rate_threshold=20
totalmem=`free |tail -n +2|head -1 |awk {'print $2'}`

while true
do
    freemem=`free |tail -n +2|head -1 |awk {'print $4'}`
    rate=$((($freemem*100)/$totalmem))
    if [ $rate -lt $rate_threshold ]
    then
	echo "freemem=$freemem, totalmem=$totalmem, rate=$rate, Need to free memory caches!!" > /dev/console
        logger "freemem=$freemem, totalmem=$totalmem, rate=$rate, Need to free memory caches!!" -t memory -p 5
        sync;sysctl -w vm.drop_caches=3
        freemem=`free |tail -n +2|head -1 |awk {'print $4'}`
        rate=$((($freemem*100)/$totalmem))

#        if [ $rate -lt $rate_min ];then
#            snlogger "event.warn 1.0" "sys_info_mem,free='$freemem',free_percent='$rate%'"        
#        fi
    fi

    sleep 300;
done
