zoukankan      html  css  js  c++  java
  • linux free命令中buffer与cache的区别

    linux free命令中buffer与cache的区别
    2012-05-15       个评论      
    收藏    我要投稿
    linux free命令中buffer与cache的区别
     
    ~$ free
                        total             used           free     shared   buffers     cached
    Mem:       1025204     981636      43568          0      38244     387808
    -/+ buffers/cache:       555584      469620
    Swap:      1931256    162948      1768308  www.2cto.com  
     
    也可以通过$watch free看到动态信息
    以上为free命令的输出内容,从中可以得到当前系统内存使用情况.
    系统的可用内存应该看第二行数据,
    -buffers/cache=used-buffers-cached
    +buffers/cache=free+buffers+cached
     
    因为第一行的used包含了系统使用的buffer及cache,而free则没包含buffer及cache,
    这部分也是可以使用的部分.
    如上所示555584为真正的系统使用内存情况,而469620为系统真正的可用内存情况.
     
    下面介绍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:  www.2cto.com  
       缓冲区,一个用于存储速度不同步的设备或优先级不同的设备之间传输数据
    的区域。通过缓冲区,可以使进程之间的相互等待变少,从而使从速度慢的设备读入数据
    时,速度快的设备的操作进程不发生间断。
    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:  www.2cto.com  
         $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
  • 相关阅读:
    hdu 5646 DZY Loves Partition
    bzoj 1001 狼抓兔子 平面图最小割
    poj 1815 Friendship 最小割 拆点 输出字典序
    spoj 1693 Coconuts 最小割 二者取其一式
    hdu 5643 King's Game 约瑟夫环变形
    约瑟夫环问题
    hdu 5642 King's Order
    CodeForces 631C Report
    1039: C语言程序设计教程(第三版)课后习题9.4
    1043: C语言程序设计教程(第三版)课后习题10.1
  • 原文地址:https://www.cnblogs.com/anruy/p/5009201.html
Copyright © 2011-2022 走看看