存档

文章标签 ‘Raid’

Raid1+0 stripe size for MySQL InnoDB

2011年12月12日 谭俊青 4 条评论

MySQL InnoDB使用 Raid 1+0 stripe size 大小该如何配置?

By: 谭俊青@MySQL实验室

要理解Raid 1+0,我们首先要先理解Raid 0,看下图:

左图为 4kb stripe size;右图为 64kb stripe size
存储文件大小:红色:4kiB,蓝色:20kiB,绿色:100kiB,紫色:500kiB

Raid 0 准确的来说应该称 AID 0
大家可以看到,如果stripe size设置过大,在单线程的情况下起不到提速作用。而设置过小又会产生多次IO操作。因此我们通过简化模型,将大部分请求的文件块大小(IO_SIZE)除以RAID0 的磁盘数量(DISK_NUM)来估算stripe size大小(stripe size=IO_SIZE / DISK_NUM)。

比如MySQL InnoDB,假设平时大部分请求文件块的大小为1M(16kb*64),那么在8块盘组成的Raid1+0的情况下stripe size=1024kb / 4 = 256kb。这时候将Raid的条带大小配置为256kb是比较合适的。MyISAM存储引擎使用情况相对复杂。

实际上管理和磁盘定位等还有一定开销,更为主要的是不同的业务,请求的文件块大小相差很大,所以在实际环境中很难一刀切说多大的stripe size最佳,因此在估算之后可以上下浮动评测,选择适合自己系统的最优大小的stripe size。

顺便今天在MySQL实验室的2个群里调查了下,stripe size大小为64kb、256kb基本各占50%。

-- -------------

SDO:测试下8块及以上盘阵 strip size 256k最佳

点评网:256k

畅游:512k 综合效果更好 (来源评论

继续统计更新…

分类: MySQL, MySQL Innodb 标签: ,