Linux---强制清除cache和buffer

今天发现机子有点卡。free -m了一下,似乎 free很少。

然后我把mongodb的所有进程都关了。但还是效果不是很明显。

最后网上搜了一下。可以通过修改/proc/sys/vm/drop_caches的值来做到强制清除缓存。然后对这个文件做了一些了解。

 

To free pagecache, use echo 1 > /proc/sys/vm/drop_caches;
To free dentries and inodes, use echo 2 > /proc/sys/vm/drop_caches;
To free pagecache, dentries and inodes, use echo 3 >/proc/sys/vm/drop_caches.Because this is a non-destructive operation and dirty objects

 

这里解释一下cache的作用,linux和win的区别就是,cache。

cache的中文名叫:高速缓存。是寄存在CPU内部的,分为2种cache,L1 cache,一级缓存;L2 cache,二级缓存。

大小为128KB-512KB之间。CPU的速度远大于内存的速度,所以cache将机子经常调用的数据进行组织后放在cache中。

经常使用的就放在前面。

 

echo 3 >/proc/sys/vm/drop_caches,后,free变大了。cache也明显缩小了。

 

需要说明的是,free的小,并不能说明系统的内存溢出或者瓶颈。因为这是linux的一种机制,只要cached的大小够大,就可以了。这个数字才是判断内存是否使用得当的依据。

 

关注公众号「Python专栏」,后台回复「机器学习电子书」免费获取100本机器学习电子书


 



你可能感兴趣的:(Linux)