主要区别是,buffer cache缓存元信息,page cache缓存文件数据

buffer 与 cache 是作为磁盘文件缓存(磁盘高速缓存disk cache)来使用,主要目的提高文件系统系性能。具体工作过程参见上一篇blog Linux 内核read工作过程.
不同点是buffer以块为大小操作,所以称块缓存,cache是以页为大小操作,所以称为页缓存(page cache)。
什么情况块为单位操作磁盘呢?
1.读写inode节点和超级块等操作

2.读写裸块设备。所谓裸块设备就是没有格式化的设备,磁盘上没有划分信息,只能按块读写。

实际可以这样认为,直接读写块设备(/dev/sda),就是以buffer缓冲。读写普通文件,就是页缓存。

除了上述情况,一般读写文件以页来缓冲文件。

什么又是Swap Cache呢?请注意不要同Swap混淆,

当内存回收时(或者内存不够用时),需要时交换到交换分区中内存页,称为Swap Cache。例如

#cat /proc/meminfo 
SwapCached:            0 kB

http://blog.chinaunix.net/uid-1829236-id-3152172.html

http://blog.csdn.net/column/details/linux--mm.html?page=1 linux内存管理专栏,其他专栏也很不错csdn

另外附带一个内存模型的博客 http://www.cnblogs.com/sunyubo/archive/2010/12/22/2282080.html

裸设备 http://www.cnblogs.com/rootq/articles/1487267.html

cache实现细节百度文库

http://wenku.baidu.com/link?url=K49cyCFFT8_59kCigSw79QCBlCEIcrx6-KIMU1Vy6JujR4dLxWYCTOisRegyikn-pYYTTq7y9KNlud22UcXYgIK4Ja7BgG31xhg_9beHEpK

百度百科关于page cache和buffer cache的实现

free命令 http://blog.csdn.net/turkeyzhou/article/details/6426738

两个博客:http://hi.baidu.com/rwen2012和http://hi.baidu.com/_kouu 其中第二个博客非常值得读一下,文件系统和内存部分挺好

这个博客也是讲linux内核的,其中只看了网络编程部分,不错的样子 http://hi.baidu.com/linux_kernel

又是一个kernel的博客:http://hi.baidu.com/wzt85/archive/tag/kernel

龙泉居士:http://hi.baidu.com/zeyu203

不知道是什么的博客:

http://blog.csdn.net/qq575787460

关于linux进程调度系统的文章:http://www.ibm.com/developerworks/cn/linux/kernel/l-kn26sch/

linux page cache和buffer cache的更多相关文章

  1. Linux系统中的Page cache和Buffer cache

    Linux系统中的Page cache和Buffer cache Linux中有两个很容易混淆的概念,pagecache和buffercache,首先简单将一些Linux系统下内存的分布,使用free ...

  2. linux Page cache和buffer cache正解

    Page cache和buffer cache一直以来是两个比较容易混淆的概念,在网上也有很多人在争辩和猜想这两个cache到底有什么区别,讨论到最后也一直没有一个统一和正确的结论,在我工作的这一段时 ...

  3. Page cache和Buffer cache[转1]

    http://www.cnblogs.com/mydomain/archive/2013/02/24/2924707.html Page cache实际上是针对文件系统的,是文件的缓存,在文件层面上的 ...

  4. 【转】Linux 查看内存(free buffer cache)

    转自:http://elf8848.iteye.com/blog/1995638 Linux下如何查内存信息,如内存总量.已使用量.可使用量.经常使用Windows操作系统的朋友,已经习惯了如果空闲的 ...

  5. page cache和buffer cache

    因为要优化I/O性能,所以要理解一下这两个概念,这两个cache着实让我迷糊了好久,通过查资料大概明白了两者的区别,试着说下. page cache:文件系统层级的缓存,从磁盘里读取的内容是存储到这里 ...

  6. linux内存 free命令 buffer cache作用

    free命令用于查看linux内存使用情况 #free shared:用于进程之间相互共享数据. Used:已使用内存. total:内存总量. free:未使用的内存. available:开启一个 ...

  7. 【Linux】清理缓存buffer/cache

    运行sync将dirty的内容写回硬盘 sync 通过修改proc系统的drop_caches清理free的cache echo 3 > /proc/sys/vm/drop_caches ech ...

  8. page cache和buffer cache 图解

    http://www.cnblogs.com/yrpen/p/3777963.html http://www.cnblogs.com/hustcat/archive/2011/10/27/222699 ...

  9. linux page buffer cache深入理解

    Linux上free命令的输出. 下面是free的运行结果,一共有4行.为了方便说明,我加上了列号.这样可以把free的输出看成一个二维数组FO(Free Output).例如: FO[2][1] = ...

随机推荐

  1. Windows远程centos6.5

    linux系统:Centos6.5 1.首先确定是不是图形化界面: yum -y groupinstall Desktop "X Window System" chinese-su ...

  2. Java中的栈:java.util.Stack类

    public class Stack<E>extends Vector<E>Stack 类表示后进先出(LIFO)的对象堆栈.它通过五个操作对类 Vector 进行了扩展 ,允 ...

  3. simple_factory

    #include <stdlib.h> #include <iostream> using namespace std; class Product { public: vir ...

  4. 解决xtraFinder在EI下不能使用问题

    在EI (10.11)下,由于SIP(System Integrity Protection)机制,导致一些第三方插件不能使用,如xtrafinder. 要想使用,在目前的情况下,启用的方法:一种是安 ...

  5. PHP中利用PCLZIP压缩解压文件

    <?php include_once('pclzip.lib.php'); $archive = new PclZip('archive.zip'); /* $v_list = $archive ...

  6. PHPCMS 错误日志 Only variables should be passed by ...

    有几个网站是PHPCMS V9做的,但这两天发现一个问题,PHPCMS 的错误日志超过了20M ,后台报警,然后我看了下错误日志,其中两万多行都是一个错误,错误信息如下: 1 <?php exi ...

  7. js中arguments的作用

    在javascript函数体内,标识符arguments具有特殊含义.它是调用对象的一个特殊属性,用来引用Arguments对象. Arugments对象就像数组,注意这里只是像并不是哈. javas ...

  8. crystal report format number

    ToText({#totalPrice}, 2,'.', ',')  &" €" http://crystaltricks.com/wordpress/?p=149

  9. parsing html in asp.net

    http://stackoverflow.com/questions/5307374/parsing-html-page-in-asp-net http://htmlagilitypack.codep ...

  10. 轻仿QQ音乐之音频歌词播放、锁屏歌词-b

    先上效果图 歌词播放界面 音乐播放界面 锁屏歌词界面 一. 项目概述 前面内容实在是太基础..只想看知识点的同学可以直接跳到第三部分的干货 项目播放的mp3文件及lrc文件均来自QQ音乐 本文主要主要 ...