今天发现机子有点卡。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本机器学习电子书
<div align="center"><img src="https://img-blog.csdnimg.cn/20190818220647999.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTIzNjU4Mjg=,size_16,color_FFFFFF,t_70" width="30%"/></div>