博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
linux 手动清理缓存
阅读量:4049 次
发布时间:2019-05-25

本文共 752 字,大约阅读时间需要 2 分钟。

写入这个文件会导致内核从内存中删除干净的缓存、dentry和inode,导致内存变为空闲。

若要释放页面缓存,请使用 echo 1 > /proc/sys/vm/drop_caches
若要释放目录项和inode,请使用 echo 2 > /proc/sys/vm/drop_caches
若要释放pagecache、目录项 和 inoodes,请使用 echo 3 > /proc/sys/vm/drop_caches

根据: 得知/proc/sys/vm/drop_caches改文件默认值为0,往改文件中写入内容将会清理缓存。建议先执行sync(sync 命令将所有未写的系统缓冲区写到磁盘中,包含已修改的 i-node、已延迟的块 I/O 和读写映射文件)。执行echo 1、2、3 至 /proc/sys/vm/drop_caches, 达到不同的清理目的

作者给出的建议:

如果因为是应用有像内存泄露、溢出的问题,从swap的使用情况是可以比较快速可以判断的,但free上面反而比较难查看。相反,如果在这个时候,我们告诉用户,修改系统的一个值,“可以”释放内存,free就大了。用户会怎么想?不会觉得操作系统“有问题”吗?所以说,既然核心是可以快速清空buffer或cache,也不难做到(这从上面的操作中可以明显看到),但核心并没有这样做(默认值是0),我们就不应该随便去改变它。

一般情况下,应用在系统上稳定运行了,free值也会保持在一个稳定值的,虽然看上去可能比较小。当发生内存不足、应用获取不到可用内存、OOM错误等问题时,还是更应该去分析应用方面的原因,如用户量太大导致内存不足、发生应用内存溢出等情况,否则,清空buffer,强制腾出free的大小,可能只是把问题给暂时屏蔽了。

转载地址:http://tufci.baihongyu.com/

你可能感兴趣的文章
LCD点屏心得
查看>>
可重入函数
查看>>
C语言嵌入式系统编程修炼之道
查看>>
linux内核驱动开发笔试题
查看>>
XX公司招聘C笔试题
查看>>
×××公司linux内核驱动开发招聘笔试题
查看>>
驱动版Hello World
查看>>
sizeof,终极无惑(上)
查看>>
常考--宏与内联函数
查看>>
C语言面试题大汇总
查看>>
C/C++ 笔试、面试题目大汇总
查看>>
One Of My True Dreams
查看>>
我看无损音频APE和FLAC
查看>>
dBm, dBi, dBd, dB, dBc 详解
查看>>
堆(heap)和栈(stack)的区别
查看>>
关于jtag接口
查看>>
MTK的OS是Nucleus
查看>>
几款初步中意的MP3播放器
查看>>
高交会
查看>>
胡言乱语
查看>>