/proc 目录
/proc:这个目录本身是一个虚拟文件系统。他放置的数据都是在内存当中,例如系统内核、进程、外部设备的状态及网络状态等。我们可以通过对它的读写操作做为与kernel实体间进行通信的一种手段,也就是说可以通过修改/proc中的文件,来对当前kernel的行为做出调整。那么我们可以通过调整 /proc/sys/vm/drop_caches 来释放内存,/proc/sys/vm/drop_caches 中的默认值为 0,值为 3 时可以释放所有缓存。
我们在清理缓存前应该先 用 sync 命令
因为系统在操作的过程当中,会把你的操作到的文件资料先保存到buffer中去,因为怕你在操作的过程中因为断电等原因遗失数据,所以在你操作过程中会把文件资料先缓存。所以我们在清理缓存先要先把 buffe 中的数据先写入到硬盘中,sync命令
sync
echo 3 > /proc/sys/vm/drop_caches
0 – 不释放
1 – 释放页缓存 (数字1是用来清空最近访问过的文件页面缓存)
2 – 释放dentries和inodes (数字2是用来清空文件节点缓存和目录项缓存)
3 – 释放所有缓存 (数字3是用来清空1和2所有内容的缓存。)
页缓存
Linux内核会将它最近访问过的文件页面缓存在内存中一段时间,这个文件缓存被称为pagecache。dentries表示目录的数据结构,inodes表示文件的数据结构,包含了各文件相关的一些重要信息。在创建文件系统时,就会同时创建大量的inode。
二、定时任务清除缓存脚本
1、新建脚本文件 cleancache.sh
vi cleancache.sh
2、脚本内容
#!/bin/bash
#每两小时清除一次缓存
echo "开始清除缓存"
sync;sync;sync #写入硬盘,防止数据丢失
sleep 10 #延迟10秒
echo 3 > /proc/sys/vm/drop_caches
3、加入定时任务