mysql raid,高性能MySQL:RAID 配置和缓存

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

8fbed9324e6ec0acb271d1fa9b5a7b8a.png

RAID条带块大小

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

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

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

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值