总结自:http://www.itpub.net/thread-1597605-1-1.html
原文比较长,且牵涉一点底层数据结构,在这里不赘述了。具体实验参照原文
能够影响asm磁盘条带效果的参数:
_asm_ausize(11g中可以在创建磁盘组时指定AU_SIZE):asm中一个au的大小,一次性分配的物理磁盘空间
_asm_stripesize:asm中条带的深度
_asm_stripewidth:asm中条带的宽度
asm中一个条带的大小=_asm_stripesize*_asm_stripewidth
正对存放在asm上的文件还有一个extent的概念,不过其为逻辑概念,基本不影响asm条带的性能,从逻辑上说,一个asm文件中,每个extent中的块都是连续的(逻辑)
磁盘组(dg)所在模板(template)中redundancy和stripe属性
若stripe为coarse,则条带深度、宽度参数均无效,此时asm的条带大小=asm的au大小
举例:磁盘1、2、3、4同属磁盘组dg1,au=1M,coarse情况下,无论条带深度、宽度如何设置,条带实际大小均以au大小为准,即1m
此时oracle会向磁盘1(随机选择)写入大小等于1m的数据量(填满一个AU),此为第一个条带,再转向磁盘4(随机选择)写入同样为1m的条带,再重复这一过程,完成所有IO,此时的条带宽度实际上为1
若stripe为fine,则条带相关参数有效,此时条带的大小=_asm_stripesize*_asm_stripewidth
举例:_asm_stripesize=256k,_asm_stripewidth=3,au=1M
此时oracle会磁盘2、磁盘3、磁盘4(均为随机选择)中各开辟一个AU,再向磁盘2写入256k,转而向磁盘3写入256k,最后向磁盘4写入256k,完成一个条带的写入,其后的数据继续以上过程写2->写3->写4,直到填满开辟出的三个AU为止,其后,oracle会重新选择_asm_stripewidth数量的磁盘各自开辟一个AU重复以上过程
需要注意的是_asm_stripesize在fine下最大不能超过1M
以上参数均需要在db和asm instance中设置
最后,注意,以上内容均不考虑存储底层对于条带的影响,仅从asm角度分析
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9547781/viewspace-758640/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/9547781/viewspace-758640/