Linux 定时清理buff/cache

总所周知,linux系统下的内存一直都不够用,特别是对于一些WEB网站而言,特别是针对一些小型服务器,内存一下子就占满了

通过我们用free -h 查询内存的占用大小时,总会发现buff/cache暂用过大

解决的方法一般可以直接清理 或者定时清理

1:直接清理

# 这个drop_caches文件可以设置的值分别为1、2、3\
echo 1 > /proc/sys/vm/drop_caches  # 表示清除pagecache\

echo 2 > /proc/sys/vm/drop_caches  # 表示清除回收slab分配器中的对象(包括目录项缓存和inode缓存)。slab分配器是内核中管理内存的一种机制,其中很多缓存数据实现都是用的pagecache。

echo 3 > /proc/sys/vm/drop_caches  # 表示清除pagecache和slab分配器中的缓存对象。

选择其中一个清理就行了,例如

echo 1 > /proc/sys/vm/drop_caches

2:定时清理

2.1  创建定时任务脚本

        找一个合适的位置,例如:/home/bin/sh/目录下

        新增cleanBuffer.sh :

vim cleanBuffer.sh

        写入以下内容:

#!/bin/bash
#每两小时清除一次内存buff/cache缓存
echo "开始清除缓存"
sync;sync;sync #写入硬盘,防止数据丢失
sleep 10 #延迟10秒
echo 3 > /proc/sys/vm/drop_caches

2.2 脚本文件授权

chmod +x cleanBuffer.sh

2.3 配置crontab 定时任务

2.3.1 编辑crontab

crontab -e

2.3.2 插入以下定时任务脚本

0 2 * * * /home/bin/sh/cleanBuffer.sh > /dev/null 2>&1 &

这里配置的是每天凌晨2点清理一次

注意:这里 /home/bin/sh/cleanBuffer.sh 文件是我们刚刚建立的清理文件

        另外,这里的表达式长度是5位,不是6位,注意了,不然会报错的

2.3.3 保存

crontab保存方式一般分为两种,

第一种:如果你的系统crontab -e 底部出现类似于BIOS的命令

Ctrl + O  # 写入

Ctrl + X  # 退出

这种,你需要在写入文件后,按住Ctrl + O  写入,然后再按住Ctrl + X推出

第二种:就是普通的文本编辑,底部啥都没有,直接wq保存

2.3.4 查看

crontab -l

如下,出现刚刚我们写入的脚本,就说明写入成功了 

2.3.5 crontab重启、开机启动

 按住自己情况来操作

systemctl start crond.service   # 开启

systemctl restart crond.service # 重启

systemctl enable crond.service  # 设置开机启动

systemctl status crond.service  # 查看运行状态

注意:对于ubuntu服务器系统,这里会显示crond.service 不存在,需要修改为cron.service,没有“d”

  • 4
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值