高性能MySQL:RAID 配置和缓存

作者:港云互联 时间:2019-12-31

        配置RAID控制器通常有几种方法,一是可以在机器启动时进人自带的设置工具,或从命令行中运行。虽然大多数控制器提供了很多选项,但其中有两个是我们特别关注的,是 条带化阵列的块大小 (Chunk Size),还有就是控制器 板载缓存(也称为RAID缓存,我们使用术语)。

高性能MySQL:RAID 配置和缓存


RAID条带块大小



        最佳条带块大小和具体工作负载以及硬件息息相关。从理论上讲,对随机I/O来说更大的块更好,因为这意味着更多的读取可以从一个单一-的驱动器上满足。



        为什么会是这样?在工作负载中找出一个典型的随机I/O操作,如果条带的块大小足够大,至少大到数据不用跨越块的边界,就只有单个硬盘需要参与读取。但是,如果块大小比要读取的数据量小,就没有办法避免多个硬盘参与读取。



        这只是理论上的观点。在实践中,许多RAID控制器在大条带下工作得不好。例如,控制器可能用缓存中的缓存单元大小作为块大小,这可能有浪费。控制器也可能把块大小、缓存大小、读取单元的大小(在一个操作中读取的数据量)匹配起来。如果读的单位太大,RAID缓存可能不太有效,最终可能会读取比真正需要的更多的数据,即使是微小的请求。



        当然,在实践中很难知道是否有数据会跨越多个驱动器。即使块大小为16 KB,与InnoDB的页大小相匹配,也不能让所有的读取对齐16 KB的边界。文件系统可能会把文件分成片段,每个片段的大小通常与文件系统的块大小对齐,大部分文件系统的块大小为4KB。一些文件系统可能更聪明,但不应该指望它。



        可以配置系统以便从应用到底层存储所有的块都对齐: InnoDB的块、文件系统的块、LVM,分区偏移、RAID条带、磁盘扇区。我们的基准测试表明,当一切都对齐时,随机读和随机写的性能可能分别提高15%和23%。对齐一切的精密技术太特殊了,无法在这细说,但其他很多地方有很多不错的信息。


新人注册,即送价值满880元现金劵

立即注册>>
客服 电话 反馈 活动 回顶部

服务热线

+852-5764-9835

1对1贴心服务,7X24小时热线