OPENWRT自动清理内存,openwrt 自动清理内存要怎么弄?
很多人都使用OPENWRT/LEDE 做ARIA2下载,然后就是使用samba,共享文件给电视,看电影,也就是做一个家庭媒体中心,不过有些路由器系统中SAMBA共享看电影的时候,内存不断的下降,虽然本质是LINUX系统的路由,内存管理方式和WIN不一样,但是经过观察,确实不会恢复内存,而且低于100后,系统会变慢,登录路由反应都很慢。所以还是有必要自动清理内存。方法如下:
1.建立SH脚本文件填入如下命令:

#!/bin/sh

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}KB][Free:${free}KB]" >> /var/log/mem.log

if [ $free -le 153600 ] ; 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 "OK" >> /var/log/mem.log
else
echo "Not required" >> /var/log/mem.log
fi

具体作用就是,查询当前内存剩余量,然后清理内存。这里是153600也就是150M以下清理,这里先运行sync,可以防止数据丢失。
保存后,放在路由器上,例如保存为以下路径:/root/memclean.sh

然后设置定时运行:
修改 /etc/crontabs/root 文件,添加一行
*/1 * * * * /root/memclean.sh
表示1分钟检测一次内存余量,低于150M 就清理!!!
还有一些智能路由的经验可以查看以下分类
智能路由分类