数据库应用:RAID的条带的概念及条带大小设置的原则

来源:互联网 发布:微信大转盘活动源码 编辑:程序博客网 时间:2024/05/19 16:35

转自fly115: 来谈谈RAID的条带的概念及条带大小设置的原则

分条可以按照水平方向(跨越每个硬盘控制器)进行,可以按照垂直的方向(跨越硬盘集合)进行

   对硬盘进行分条动作的目的是为了使用多个硬盘控制器以便达到对数据的并行访问,因此必须考虑系
统中可用的硬盘控制器数目以及每个分条集合中的成员数目。通常,不应该使得分条集合中的成员数
目多于系统中可用的硬盘控制器数目,否则将会不能很好地实现进行硬盘分条的目标,这个目标就是
将数据分散到系统中可用的多个资源上,以便实现数据的并发访问
   如果假设操作系统与数据库的数据块大小都是8KB,那么系统为了实现对四个分条集合的并行访问,
那么每次就应该至少读写32KB(8KB×4个硬盘控制器)的数据

一个条带大小是一次访问的IO数据(可以是数据库块的倍数),但是由于这一次IO的数据分布在不同
的硬盘(应该是不同的硬盘控制器上),提供了并行的方式,提高读的性能(就相当于原来一台收银台
收4个客户的钱,如果条带了4个磁盘控制器就相当有4台收银台来收钱,同一时间可以一起收,提高并行度)

对于OLTP和DSS,进行硬盘的垂直分条操作对于克服I/O热点问题非常有效

对于大多数OLTP应用程序, 32KB或者64KB的分条大小是比较有效的。但是,除非应用程序完全是
OLTP应用程序,笔者并不推荐使用16KB的分条大小。

对于DSS应用程序,笔者推荐使用64KB或者128KB的分条大小,有时甚至可以使用256KB或者
512KB的分条。分条大小也同样取决于数据库的总大小

分条大小 = 数据库块大小 * RAID组中硬盘数(最好是跟硬盘控制器相同) *  n
这个n通常是1,可以谁数据库的类型(如oltp/oltp)改变,通常olap值更大

保存有表数据和不唯一索引的表空间可以被放置在分条大小较大的硬盘上,
SYSTEM表空间、保存有唯一关键字索引的INDEX表空间,可以被分条到较小的分条大小

另外对于temp tablespace,logfile等要结合特性进行划分

对于象temp tablespace,redologfile ,archive logfile这样的顺序IO,可以设置较大的条带值,因为是顺序读写,便于减少IO

原创粉丝点击