主要区别是,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. open_clientfd(char* hostname,int port)和open_listenfd(int port)

    #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <string.h&g ...

  2. TCL_事务控制语言

    TCL     transaction  事务   --  DML            定义为把一连串的操作作为单个逻辑工作单元处理                -----     例如:银行转账 ...

  3. hadoop下跑mapreduce程序报错

    mapreduce真的是门学问,遇到的问题逼着我把它从MRv1摸索到MRv2,从年前就牵挂在心里,连过年回家的旅途上都是心情凝重,今天终于在eclipse控制台看到了job completed suc ...

  4. CSS3 弹性盒布局模型(转)

    简介 引入弹性盒布局模型的目的是提供一种更加有效的方式来对一个容器中的条目进行排列. 对齐和分配空白空间.即便容器中条目的尺寸未知或是动态变化的,弹性盒布局模型也能正常的工作.在该布局模型中,容器会根 ...

  5. KnockoutJS(2)-监控属性

    本节主要涉及到3个内容: 1. 监控属性 Observables (这个用的比较多,但是其本身使用比较简单,唯一需要注意就是,它监控的对象是一个方法,所以取值和设置值的时候容易混淆) 2. 计算属性  ...

  6. HttpClient SSL示例(转)

    原文地址: http://www.cnblogs.com/jerry19890622/p/4291053.html package com.jerry.httpclient; import java. ...

  7. PHP5 GD库生成图形验证码(汉字)

    PHP5 GD库生成图形验证码且带有汉字的实例分享. 1,利用GD库函数生成图片,并在图片上写指定字符imagecreatetruecolor 新建一个真彩色图像imagecolorallocate ...

  8. 在fedora 桌面上添加应用程序

    在网上下了个android studio,这个程序只是的压缩包,解压后程序也只能在SHELL下敲入studio.sh才能运行 能不能向其他程序一样,在fedora桌面上找到应用程序,点击执行呢.在网上 ...

  9. Thinkphp C方法

    C方法是ThinkPHP用于设置.获取,以及保存配置参数的方法,使用频率较高. 了解C方法需要首先了解下ThinkPHP的配置,因为C方法的所有操作都是围绕配置相关的.ThinkPHP的配置文件采用P ...

  10. iOS 基础 第三天(0807)

    0807 成员变量作用域###### 如下图所示: 这里要注意手写的成员变量/实例变量默认的作用域是private,所以外部指针类型的对象无法直接访问,这起到一定的保护作用.但可以在当前类内部@imp ...