Linux如何清理缓存

使用sodu su进入root权限

echo 1 > /proc/sys/vm/drop_caches
echo 2 > /proc/sys/vm/drop_caches
echo 3 > /proc/sys/vm/drop_caches
sync

跑完程序后,系统会保存很多缓存以及缓冲,使用 free -m 命令可以看到系统的被占用情况

输入以上四个命令后,再次查看,发现内存被清理掉很多

下面简单介绍一下这条命令。

/proc/sys/vm/drop_caches

proc文件节点,是用户与内核进行通信和数据交换的一个通道,sys/vm/drop_caches字面也好理解,系统的虚拟内存模块保留的一个drop caches的接口,想这个接口发指令就能drop caches,linux这个命名也是6啊,看名知意。
echo的参数:
0 – 不释放
1 – 释放页缓存
2 – 释放dentries和inodes
3 – 释放所有缓存
3还是慎用吧,另外释放内存之前最好sync一下,linux本身将内存中的缓存写回磁盘的时间是30s(印象是这个,如果自己没有调过内核参数的话),sync就是告诉系统,把缓存的东西该写磁盘的写磁盘,老子不等你那个30s了,老子要的现在就要。嗯,就是这样。

发布了81 篇原创文章 · 获赞 109 · 访问量 38万+

猜你喜欢

转载自blog.csdn.net/ooooooobh/article/details/105585495