Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1134981
  • 博文数量: 414
  • 博客积分: 10030
  • 博客等级: 上将
  • 技术积分: 4440
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-05 21:42
文章分类

全部博文(414)

文章存档

2011年(1)

2009年(1)

2008年(412)

我的朋友

分类: LINUX

2008-10-08 11:44:44

对于磁盘I/O 来说,如果没有CACHE ,就直接从硬盘读写;如果有CACHE ,则首先从CACHE 读写。
 
CACHE 具有两大功能:
 
1 、预读
 
CACHE 预读提高了计算机系统中的硬盘读的功能,尤其是在读取含有大量文件碎片的文件时。具有良好预读功能的RAID 卡能在看起来很随机的读访问中,识别出读取磁盘的规律, 通过这个规律提前将系统要读取的数据放在CACHE 中。
 
预读的两种方式:
 
Read Ahead
 
由于硬盘数据经常是以一族连续的硬盘扇区组织起来的,所以有时侯如把系统所请求的扇区随后的一个扇区里的数据 同时读进来是有价值的。对于数据文件的读取有利, 特别是系统CPU 的性能低时。
 
Pre-Fetch
 
RAID 卡发现系统要读的是先前已经读过的数据时,在 这一次,便将这一个数据块的数据写到CACHE 里。对于程序文件的读取有利 。
 
2 、回写
 
回写是通过暂时将数据存在CACHE 里,从而推迟将数据写到慢设备(如硬盘、磁带机)的一种工作方式。数据将在随后的时间,硬盘闲置的时候写到硬盘中。写的时候也是统一将CACHE 内的尚未写出的数据按照数据块的在硬盘中的BLOCK 序号写入,这样可以提高写的效率。
 
回写需要加电池给CACHE 供电,以免数据在写到硬盘之前系统断电导致硬盘数据丢失。
 
增加CACHE 大小对于预读来说,为系统提供了更多的来自CACHE 的可供读取的记录。 对于回写来说,允许控制卡保存更多的记录留待后期写磁盘。特别是对于电梯式回写,使得连续的回写段之间有更近的间隔,降低硬盘写操作的平均访时间并提高了吞吐率。
 
写策略
 
通写模式下,所有数据在以命令完成状态返回到计算机之前,直接写到硬盘。两种写策略比较来说,写策略由通写改为回写时,可大幅度提高性能。但回写具有一定的数据危险性。在突然断电的情况下,会丢失存于Cache 尚未写入硬盘的数据。
 
RAID卡 工作在写策略为THROUGH 时,缓存大小对RAID卡 的性能影响很小,只有当写策略改为BACK 时,缓存的作用才会发挥出来。
 
影响RAID卡 性能的因素很多,其中可调因素主要有RAID卡 缓存(CACHE )大小、写策略(WRITE POLICY )、读策略(READ POLICY )、条带的大小(STRIPE SIZE )。不同的RAID卡 虽然说法略有不同,但意思是一样的。很多设置可以在RAID卡 的配置工具中调整。
阅读(1393) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~