注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

老狗的博客

尽管每一步都很微小,但我确认我在进步

 
 
 

日志

 
 
关于我
sky

认真生活,努力工作 热爱技术,关注DB,存储,分布式,中间层,java,c++,php

linux buffer和cache的区别  

2013-03-18 09:16:51|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

linux 可以划分为用户态 和 内核态, 用户态的程序通过 系统调用 进入内核态

我们这里讨论的buffer和cache 指的是 内核态 下,由内核进行管理的内存的区域
 
首先看下linux 下free -m的结果:
 
linux buffer和cache的区别 - sky - 老狗的博客
 
buffers = 224M, cached = 10107M, free= 237M,
free = 224 + 10107 + 237 = 10568M

这里所谓的buffer是块缓冲区,块的大小对应于磁盘上的block,默认大小为1K
而这里所谓的cache是页缓冲区,页的大小对应于文件系统中的页,默认大小为4k

关于他们的用途众说纷纭,但是有三点是肯定的:
1. buffer 和cache 都是内核管理的 物理内存区域
2. buffer 以块为单位管理,cache 以page为单位进行管理 ,不管管理的单位是什么,都是用做(磁盘和内存间的cache)存在的, 可能的区别就是缓存的数据不同而已
3. 物理磁盘读取和写入,都是以block为单位来进行的

根据以上三点, 有如下问题需要关注:

1. 用户态 空间的数据 如何 写到磁盘上?

用户态空间的数据,首先会被拷贝到 (page cache 或者 buffer)中,他们的指针会被组织成一个队列或者LRU list, 然后再由磁盘优化调度,根据需要将他们写到磁盘


2. page cache 刷新数据的策略?


3. page cache中的page 如何组织?


结论:


参考文档连接:










 
 
  评论这张
 
阅读(209)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018