使用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了,老子要的现在就要。嗯,就是这样。