Memory_Threshold 想當然就是設定一個threshold的值給他囉!
接著去抓取/proc/meminfo下面MemFree的值還剩多少,方便起見,就用grep去找到MemFree
接著用sed將MemFree和kB取代成空值,就可以得到Free Memory剩下多少了
接去用if 判斷式去判斷如果Free_memory小於設定的 threshold之後,就先執行一下sync,避免尚有正在處理的記憶體cache被我們所清楚掉,接著執行echo3 > /proc/sys/vm/drop_caches就可以釋放系統的記憶體暫存。

Memory_Threshold=550
Free_Memory=`cat /proc/meminfo | grep 'MemFree:' | sed 's/^.*MemFree://g'  | sed 's/kB*$//g'`

if [ $Free_Memory -le $Memory_Threshold ]; then
   sync;echo 3 > /proc/sys/vm/drop_caches
   echo "====clear memory cache===="
fi


reference blog: http://blog.wu-boy.com/2010/12/linux-%E9%87%8B%E6%94%BE%E8%99%9B%E6%93%AC%E8%A8%98%E6%86%B6%E9%AB%94-cache/
創作者介紹

欣情巧克力

Yisin 發表在 痞客邦 PIXNET 留言(0) 人氣()