总所周知,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重启、开机启动
按住自己情况来操作文章来源:https://www.toymoban.com/news/detail-700061.html
systemctl start crond.service # 开启
systemctl restart crond.service # 重启
systemctl enable crond.service # 设置开机启动
systemctl status crond.service # 查看运行状态
注意:对于ubuntu服务器系统,这里会显示crond.service 不存在,需要修改为cron.service,没有“d”文章来源地址https://www.toymoban.com/news/detail-700061.html
到了这里,关于Linux 定时清理buff/cache的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!