Chinaunix首页 | 论坛 | 博客
  • 博客访问: 917182
  • 博文数量: 194
  • 博客积分: 7991
  • 博客等级: 少将
  • 技术积分: 2067
  • 用 户 组: 普通用户
  • 注册时间: 2007-12-09 22:03
文章分类

全部博文(194)

文章存档

2010年(8)

2009年(71)

2008年(109)

2007年(6)

我的朋友

分类: 服务器与存储

2009-04-01 11:33:13

Page Cache 在磁盘速度测试中的影响
Page cache,本质上是一个一个的物理内存页,作用于介于内存缓冲区和物理文件之间,是操作系统用于提高I/O效率和系统性能的一个有效方法。
 
用户调用read时,OS会将比read多的多的数据事先读取到page cache中,接下来的read操作很可能不会再涉及到磁盘操作,而是从cache中读取;用户调用write时,OS则将数据写到page cache中,而不是立即写入磁盘,等到OS认为写的时机成熟,才会将数据从page cache写入磁盘。
 
Page Cache的这种特性,将会给磁盘速度测试带来误差:以wirte为例,将一块内存缓冲区写入文件,write操作在时间N内完成,则N很可能是写page cache(内存)的时间而不是实际写入物理磁盘的时间,这就使得所测得的速度虚高;相对来说,read操作受page cache影响稍低一些。
 
在linux和windows下都有bypass page cache的技术,具体来说就是在打开文件的时候,flags参数需要加入O_DIRECT(linux)/NO_BUFFERING(windows),这两个synchronous标记确保了read/write调用结束之后,data is guaranteed to have been transferred.
 
阅读(1458) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~