Chinaunix首页 | 论坛 | 博客
  • 博客访问: 53392
  • 博文数量: 17
  • 博客积分: 1420
  • 博客等级: 上尉
  • 技术积分: 197
  • 用 户 组: 普通用户
  • 注册时间: 2009-04-03 20:34
文章分类
文章存档

2010年(16)

2009年(1)

我的朋友

分类: 服务器与存储

2010-09-03 10:32:51


这里的Disk buffer指的是磁盘上的缓存,现代的磁盘基本上都有8MB-32MB的板载缓存,这个缓存是易失性缓存,掉电后数据即丢失。
磁盘缓存的意义:
预读——磁盘是个机械装置,当读取一块数据的时候,需要先把磁盘臂移到指定的磁道,这个过程是纯机械的过程,与电子传输的速度比起来缓慢得多。磁盘控制器为了尽量减少这种缓慢的过程,会将指定数据块附近的数据预先读入缓存,以备OS会发出指令读取这些内容。

与高速设备匹配——众所周知,磁盘一直是计算机系统中性能提升最缓慢的一环,其与系统总线、内存的性能相差不是一个数量级,所以主板芯片组有一个专门的功能是将这些慢速设备与cpu、内存这样的高速设备相匹配,磁盘缓存的功能与此类似,尽量提高磁盘的响应速度,使OS可以得到快速响应继续处理下一个任务。

回写——也就是写加速,磁盘接收到数据之后立即返回操作系统表示写入完毕,其实数据仍然在磁盘的缓存中,并未真正写到盘片上。当缓存达到一定的数据量时,才一次性写入盘片,这个过程叫flush。回写加快了数据写入磁盘的过程,但是引入了掉电情况下数据丢失的风险。过大的缓存会造成flush时间较长,可能反过来影响磁盘的性能,回写缓存可以关闭。

命令队列——SCSI磁盘和新的SATA磁盘都有命令队列的功能,可以把接收到的指令保存在缓存中排队,磁盘控制器甚至还有对这个队列进行优化的能力,例如把队列中先后相差比较大的但读取相邻数据块的指令一次执行。
阅读(960) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2010-09-05 14:51:25

Download More than 1000 free IT eBooks: http://free-ebooks.appspot.com