随着LINUX系统的运行,有的时候内存会被缓存占用掉,导致系统使用SWAP空间影响性能,例如当你在Linux下频繁存取文件后,物理内存会很快被用光,当程序结束后,内存不会被正常释放,而是一直作为缓存。此时就需要执行释放内存(清理缓存)的操作了:
一、使用指令free -h或者free -g查看内存使用情况:
二、当内存的free值达到阈值时,进行释放内存(缓存):
1、创建check_mem.sh文件:
/usr/local/bin/vi check_mem.sh
2、写入以下脚本,当内存free值等于0时(具体数值可自行配置)开始手动释放内存(缓存):
#!/bin/bash
FreeMem=`free -g | grep Mem | awk '{print $4}'` #取free -g的Mem行第四列值(free值)
if [ $FreeMem -eq 0 ] #当FreeMem等于0时
then
sync;sync;sync #将缓存区数据写入磁盘中
sleep 10 #等待10秒
echo 3 > /proc/sys/vm/drop_caches #释放内存
fi
-gt : (greater than) 大于
-ge : (greater than or equal) 大于或等于
-lt : (less than) 小于
-le : (less than or equal)小于或等于
-ne : (not equal) 不相等
-eq : (equal) 相等
3、授权check_mem.sh
chmod +x check_mem.sh
三、添加定时任务:
vi /etc/crontab
添加定时任务每两个小时执行一次
* */2 * * * root /usr/local/bin/check_mem.sh
完成后配置后,系统会每两个小时检查一次内存free值,当达到设定值时进行释放内存(缓存)。