项目中一个测试程序在运行过程需要不断的读写文件,长时间运行后,系统可以用内存原来越少,cached的内存越来越多,需要一个定时release cache内存的脚本
if
[
$MEM_FREE
-
le 500000
]
; then: 检测到空闲内存小于等于500000时,释放cached占用内存到free内存中。
- #!/bin/sh
-
- echo "2bbbbbbbbbbbbbbbbbbbbb"
-
- while true
- do
-
- #MEM_USED=`free -m | awk 'NR==2' | awk '{print $3}'`
- MEM_FREE=`free -m | awk 'NR==2' | awk '{print $4}'`
-
- if [ $MEM_FREE -le 500000 ] ; 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 "Free Memory Cache Buffer OK"
- else
- echo "Not Required Free Memory Cache Buffer"
- fi
-
- # sleep 30 minute
- sleep 1800
-
- done