linux手动自动清理内存缓存


前言

随着服务器的运行,内存会被越来越多的缓存占据,这个时候就需要自动释放一些服务起内存缓存了。


一、手动清理

1.查询服务器内容占用

free -g

在这里插入图片描述

2.同步

sync

3.清理

cat /proc/sys/vm/drop_caches
echo 3 > /proc/sys/vm/drop_caches

提示

echo 0 是不释放缓存
echo 1 是释放页缓存
ehco 2 是释放dentries和inodes缓存
echo 3 是释放 1 和 2 中说道的的所有缓存


二、自动清理

1.创建自动清理脚本dropcache.sh(注意设置脚本可执行权限)

#!/bin/bash
used=`free -m | awk 'NR==2' | awk '{print $3}'`
free=`free -m | awk 'NR==2' | awk '{print $4}'`
echo "===========================" >> /home/dropcache.log
date >> /home/dropcache.log
echo "Memory usage | [Use:${used}MB][Free:${free}MB]" >> /home/dropcache.log
#如果可用内存小于5.5G则进行清理释放
if [ $free -le 55000 ] ; 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/spool/cron/delcache.log
else
echo "Not required" >> /home/dropcache.log
fi

2.记录自动清理日志dropcache.log

===========================
Wed Sep 13 17:30:31 CST 2023
Memory usage | [Use:27759MB][Free:306MB]
===========================
Wed Sep 13 17:30:56 CST 2023
Memory usage | [Use:27734MB][Free:4056MB]
===========================
Mon Oct 23 10:00:01 CST 2023
Memory usage | [Use:31160MB][Free:314MB]

在这里插入图片描述

3.设置定时器

在命令行中执行(以root用户登录)

crontab -e

会打开一个文件,按字母 i ,进入编辑模式,输入定时任务表达式
#定时执行的脚本,一定要使用绝对路径

0 6 * * * /home/dropcache.sh

保存文件
查看是否创建成功

crontab -l

查看所有用户的crontab任务

cat /etc/passwd | cut -f 1 -d : |xargs -I {} crontab -l -u {}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值