Linux系统buff/cache 中缓存数据占用内存过高,定时清理buff/cache ,释放系统内存
- 先看看当前内存使用的情况
free -m
- 创建存放脚本的文件夹
mkdir script
- 在文件夹下编写清理脚本
vi script/clear_buff_cache.sh
- 脚本具体内容
echo "开始清除缓存"
echo "写入硬盘,防止数据丢失"
sync;sync;sync
echo "延迟10秒"
sleep 10
echo "清理缓存"
echo 1 > /proc/sys/vm/drop_caches
echo 2 > /proc/sys/vm/drop_caches
echo 3 > /proc/sys/vm/drop_caches
echo "清理完毕"
- 创建定时任务
crontab -e //弹出配置文件
添加如下内容:(按需修改)
# clear buff/cache 凌晨三点执行
0 3 * * * /root/script/clear_buff_cache.sh
- 保证crond启动以及开机自启
systemctl start crond.service
systemctl enable crond.service
- 将脚本改为可执行文件查看效果并执行
chmod +x /root/script/clear_buff_cache.sh
/root/script/clear_buff_cache.sh
- 效果
可以看到清理了100多M