空间管理 您的位置: DOIT博客 » Host » 日志
与其临渊羡鱼,不如坐而论钓

DS8000红皮书第八次上传

上一篇 / 下一篇  2006-09-14 18:19:21 / 天气: 晴朗 / 心情: 高兴 / 个人分类:翻译类文章

2.2.2Cache管理

绝大多数高端磁盘系统把Cache纳入到系统内部设计,多少有些系统运作的需要。长期的,Cache大小引人注目的在增长,但是用于系统磁盘能力的Cache大小比率一直保持几乎相同。

8q6q$d9T_sz0

DS6000DS8000使用正在申请专利的Sequential Prefetching in Adaptive Replacement Cache (SARC)算法,developed by IBM Storage Development in partnership with IBM Research。它有自动调节、自动优化,解决各种顺序和随机I/O流的负载。SARCAdaptive Replacement Cache (ARC)算法中得到灵感,并从中继承了很多优点。对于ARC详细的说明请参阅N. MegiddoD. S. Modha的,Outperforming LRU with an adaptive replacement cache algorithm,”IEEE Computer, vol. 37, no. 4, pp. 58–65, 2004.DOIT博客S1{Jz3z

SARC基本上关注4件事情:

9L'Jb v4bQsJ s0

Ü       什么时候数据拷贝到Cache

,s#|z r^OA0

Ü       哪些数据拷贝到CacheDOIT博客-x)a ax D'I/|+J

Ü       Cache充满后哪些数据被清除DOIT博客0JRF2a/t` W]

Ü       算法怎么动态去适应不同的负载

[ M6J Csi0

DS8000Cache按照叫做Cache pageslot4K字节pages组织起来。这样的单元分配(这比用其它数值的存储系统)保证小I/O不会浪费CacheDOIT博客,?t y9D(FEJ.{8TK

拷贝到DS8000 Cache中一些数据的结果能够触发两条股则:请求页面调度paging和预取Prefetching。请求页面调度Demand paging意味着8个磁盘块disk blocks(一个4KCache页)在一次cache miss完成。页面调度对所有的卷都是有效的,保证在Cache中能够找到最近被使用的I/O

3} I1N0o;uo,Cs0

预取Prefetching意味着数据在被请求之前就已经投机的拷贝到Cache中。对预取,是一个对未来需要访问的数据的预测。因为有效的成熟的预取计划需要大量的page访问历史(在现实环境是不可行的),SARC对顺序负载上使用预取功能。顺序访问模式自然的出现在视频、数据库检索、拷贝、以及恢复领域。顺序预取的目标是发现顺序访问以及有效的提前将数据装入Cache,来减少Cache missDOIT博客[ L2r\UB+E

对于预取,cache管理采用track。一个track128个磁盘块disk blocks16cache page)。发现一个顺序访问模式后,计数器保持纪录所有正在被访问的track以及它的前身。只有当计数器建议一个连续访问模式时,顺序预取功能才激活。通过这种方法,DS6000/DS8000监视应用读I/O模式和动态的确定是否是进入Cache最佳的时机:

D,t3l!D8v"J6inj"t B0

Ü       刚好pages被请求

TDeg%_0

Ü       请求的page加上剩余的数据在磁盘track

R+N}.a Q-?4i0

Ü       一个全部的disk track(或一组disk track)之前没有被请求DOIT博客2z%JY pw!P^)i

决定在什么时候和什么数据被预取,以每一个应用为基础(而不是整个系统),敏感的区分同时正在运行的不同应用的不同数据参考模型。

?-?2I ]MPqsQ0

顺序和随机(非顺序)数据被分开为2个列表(看图2-4),决定当Cache充满的时候,什么page被清除出去。一个page装载到cache中通过简单的请求内存分页添加到随机列表RANDOM ListMRU(Most Recently Used)的顶部。未来没有更多I/O访问下,它下降到(LRULeast Recently Used)底部。一个顺序访问的page装载到Cache中,通过顺序预取添加到顺序列表SEQ listMRU顶部接着进入。另外的规则控制这个page在两个列表的之间的迁移,因此相同的page不会出现两次。DOIT博客8?9P ^&X}]o

u9N0D!RM~H(mM0

DOIT博客V9ru8fS:X(R

2-4 SARC算法对于随机和顺序数据的cache列表

*J0v5l{K \F ]4|0

跟随负载压力的变化,算法交易cache空间在randomseq之间动态自适应的改变。这使得SARC抵抗扫描,所以,一次性的顺序请求不会污染整个cacheSARC为顺序列表保持一个期望的大小。期望的大小响应负载进行不断的修改。特别的,如果SEQ list底部的部分被发现比RANDOM底部的部分更加有价值,期望的大小将增加;另外的,期望的大小将减小。不断努力充分利用有限的cache空间,以及提供更大的吞吐能力,和在一定的cache大小下得到更快的响应时间。DOIT博客Lbm6zW N'h7[T

另外,算法动态更改不仅是两个列表的大小,而且大小改变的速度的比率。在稳定的状态下,根据cache miss率,pages被驱逐出cache。更大的(各自的,更小的)miss比率影响适应的更加快速的(各自的,更慢的)比率A larger (respectively, a smaller) rate of misses effects a faster(respectively, a slower) rate of adaptation

3Y|9oOkPk-\t0

TAG: DS8000 红皮书 翻译类文章

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

Open Toolbar