针对JVM,在linux环境下,线程使用过多后(new Thread或者使用线程池),会造成大量内存在linux的cache/buffer区,使free内存过少,导致程序或机器上的其他应用报内存不足。
处理脚本
#!/bin/bash
#每天0点清除一次缓存
echo "clear start..."
sync;sync;sync #写入硬盘,防止数据丢失
sleep 1 #延迟1秒
echo 1 > /proc/sys/vm/drop_caches
echo "clear end..."
加入crontab -e里
0 1 * * * /root/bin/sys/clearCacheMem.sh