昨天在看民用NAS,里面提了RAID,突然想起之前一直有个Mysql利用RAID进行优化的坑,今天填坑
参考资料主要来自于《高性能Mysql》和《Innodb存储引擎》
raid 基础的0,1,2,3,4,5,6,7,10等模式我不在多说,只记录能够进行性能优化的部分。
《Innodb存储引擎》
1、开启RAID write back功能,RAID两种写入模式,write back和write through,write back可以将数据先写入RAID缓存中,不用等待物理磁盘实际写入完成,提升了整体的写入性能,举例是sync_binlog(用来刷binlog的)参数在不为1时写入性能有巨大提升,当然,write back有断电风险,所以一般而言,硬RAID都带有备用电池,在断电之后也能保证数据安全写入,在电池电量不足的情况下,RAID会切换至write through模式,也就是没有缓冲的写入。
如果你要用write through,可能还需要变更一些其他参数,书中举例了innodb_flush_log_at_trx_commit,这个参数时是控制redolog是以秒(0),还是以事务(1),还是不定时(一秒左右,跟进,会有溢出风险),每个事务都要刷盘,会拖慢整体写入速度,使用0或者2时,能够提升写入性能。
《高性能mysql》
首先提到一个问题就是基准测试,不论使用什么RAID,都建议通过基准测试来了解系统性能,书中举的例子也是sync_binlog和innodb_flush_log_at_trx_commit两个参数的,说白了还是关注redolog和binlog的刷盘情况
其他讲的和上一本书差不多,主要还是RAID本身的东西。
多说一句,一般而言,RAID生产都是硬RAID或硬RAID+软RAID,采用的基本都是RAID10,RAID5有可能出现。
※ 360的Kafka集群使用的是JBOD
以上,填个坑。