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 Cluster集群、MySQL HA高可用等研究 – MySQL实验室, 2011.
可以任意转载, 但转载时务必以超链接形式标明文章原始出处 和 作者信息。
链接: http://www.mysqlab.net/blog/2011/12/raid10-stripe-size-for-mysql-innodb/
标签: Raid, stripe size