Linux缓存清理

缓存清理

Linux在写入硬盘的时候为了效率起见,会把数据临时的写到filesystem buffer中,buffer是一块记忆空间,此时如果系统突然断电或者宕机,数据就会丢失(不能直接拔电源关机的原因),sync命令就是让存于buffer中的数据强制刷新到磁盘中,因此在清除缓存之前,需要先执行sync指令!
[root@VM-75-60 ~]# sync
echo 1 > /proc/sys/vm/drop_caches 的作用是清除页面缓存
echo 2 > /proc/sys/vm/drop_caches 的作用是清除目录缓存和inodes
echo 3 > /proc/sys/vm/drop_caches 的作用是 pagecache、dentries和inodes,也就是以上全部缓存。
drop_caches的值可以是0-3之间的数字,代表不同的含义:
                                0:不释放(系统默认值)
                                1:释放页缓存
                                2:释放dentries和inodes
                                3:释放所有缓存
                                释放完内存后改回去让系统重新自动分配内存。
                                echo 0 >/proc/sys/vm/drop_caches
注意:再说一遍!在执行上面echo操作之前,需要先执行sync操作,也就是强制把buffer中的数据写到磁盘中!
我们可以连成一条指令:sync && echo 3 > /proc/sys/vm/drop_caches && sleep 2 && echo 0 > /proc/sys/vm/drop_caches
以上是清除当前系统里的buffer缓存,如何关闭缓存?
修改drop_caches为3即可~
或者:echo vm.drop_caches=1/2/3 >> /etc/sysctl.conf && sysctl -p
原文地址:https://www.cnblogs.com/storyawine/p/13357772.html