读写文件时,Linux内核为了提高读写效率与速度,会将文件在内存中进行缓存,这就是Cache Memory(缓存内存)。即使程序运行结束后,Cache Memory也不会自动释放。这就会导致程序频繁读写文件后,可用物理内存会很少。其实这缓存内存(Cache Memory)在你需要使用内存的时候会自动释放,所以不必担心没有内存可用。
当服务器很多时,为了让服务器始终处于高性能状态,需要设置预警值,然后自动清理缓存,假如我们的内存利用率预警值为80%,示例shell:
MemThr=80
MemPer=free -m|grep "Mem:"|awk '{printf("%d\n",$3 * 100/$2)}'
if [ “$MemPer” -gt “$MemThr” ]; then
echo “clear cache”
echo 3 > /proc/sys/vm/drop_caches
fi
此外要在crontab中把任务添加进来