• 释放Linux系统缓存


    清理Linux缓存使用下面的命令

      sync; echo 3 > /proc/sys/vm/drop_caches

    需求与原理

    下面介绍buffer与cache的差别:

    A buffer is something that has yet to be "written" to disk.

    A cache is something that has been "read" from the disk and stored for later use.

    buffer:  

      缓冲区,一个用于存储速度不同步的设备或优先级不同的设备之间传输数据

    的区域。通过缓冲区,可以使进程之间的相互等待变少,从而使从速度慢的设备读入数据

    时,速度快的设备的操作进程不发生间断。

    cache:

           高速缓存,是位于CPU与主内存间的一种容量较小但速度很高的存储器。由于

    CPU的速度远高于主内存,CPU直接从内存中存取数据要等待一定时间周期, Cache中保存

    着CPU刚用过或循环使用的一部分数据,当CPU再次使用该部分数据时可从Cache中直接调

    用,这样就减少了CPU的等待时间,提高了系统的效率。Cache又分为一级Cache(L1 Cache)

    和二级Cache(L2 Cache),L1 Cache集成在CPU内部,L2 Cache早期一般是焊在主板上,现

    在也都集成在CPU内部,常见的容量有256KB或512KB L2 Cache。

           当你读写文件的时候,Linux内核为了提高读写性能与速度,会将文件在内存中进行缓存,

    这部分内存就是Cache Memory(缓存内存)。即使你的程序运行结束后,Cache Memory也不会

    自动释放。这就会导致你在Linux系统中程序频繁读写文件后,你会发现可用物理内存会很少。

    其实这缓存内存(Cache Memory)在你需要使用内存的时候会自动释放,所以你不必担心没有

    内存可用。如果你希望手动去释放Cache Memory也是有办法的。

    如何释放Cache Memory(缓存内存), 用下面的命令可以释放Cache Memory:

    To free pagecache

         $sync; echo 1>/proc/sys/vm/drop_caches

    To free dentries and inodes: 

         $sync; echo 2>/proc/sys/vm/drop_caches

    To free pagecache, dentries and inodes:

         $sync; echo 3>/proc/sys/vm/drop_caches

    注意,释放前最好sync一下,防止丢失数据。

     

    free命令中的buffer和cache:(它们都是占用内存):

           buffer : 作为buffer cache的内存,是块设备的读写缓冲区

           cache: 作为page cache的内存, 文件系统的cache

  • 相关阅读:
    应用服务器性能优化总结
    Web性能优化:图片优化
    图片优化
    浏览器端的九种缓存机制介绍
    MySQL 与 MongoDB的操作对比
    js类型判别大合集
    节流函数和防抖函数的注意事项
    前端和后端交互的方式
    js中关于假值和空数组的总结
    LeetCode 367. 有效的完全平方数
  • 原文地址:https://www.cnblogs.com/guanghe/p/8695873.html
Copyright © 2020-2023  润新知