当我们在命令行中执行free -h 查看内存时,发现buff/cache占用过大,导致其他软件没有内存可使用(我已经清理过来,之前的buffer/cache是35447933)
buff/cache是由于系统读写导致的文件缓存,没有及时释放。
解决方案:清理缓存
# 这个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分配器中的缓存对象。
这样我们就解决了buff/cache过高的问题,但是缺点在于我们需要手动去执行!
定时任务脚本解决方案:
mkdir /tools/clean
cd /tools/clean
touch cleanBuffCache.sh
vi cleanBuffCache.sh,补