使用CentOS系统时经常会发现内存占用特别高,尤其是Cache。
这里不多说为啥了,好多文章都有,下面直接贴内存清理的脚本:
#!/bin/bash
if [[ $1 = "--help" ]] || [[ $1 = "-h" ]]
then
echo "This script is used to clean up used memory."
echo "Execute 'sh freemem.sh' and clean up when free is less than 100."
echo "Execute 'sh freemem.sh 300' and clean up when free is less than 300."
exit 0
fi
used=`free -m | awk 'NR==2' | awk '{print $3}'`
free=`free -m | awk 'NR==2' | awk '{print $4}'`
echo "===========================" >> /var/log/mem.log
date >> /var/log/mem.log
echo "Memory usage | [Use:${used}MB][Free:${free}MB]" >> /var/log/mem.log
minMem=100
if [ -n "$1" ]
then
echo "The minimum value of incoming free is ${1}M"
minMem=$1
else
echo "The default minimum free value is ${minMem}M"
fi
if [ $free -le $minMem ] ; then
sync && echo 1 > /proc/sys/vm/drop_caches
sync && echo 2 > /proc/sys/vm/drop_caches
sync && echo 3 > /proc/sys/vm/drop_caches
echo "Clean up completed." >> /var/log/mem.log
else
echo "No need to clean up." >> /var/log/mem.log
fi
运行示例:
脚本对http://t.csdn.cn/XVJt3中做了修改