MySQL场景
MySQL Innodb block块为16K,文件系统为4K,传统硬盘512字节,16K写入需要保证原子性,而在线日志无法恢复断页情况。MySQL通过Doublewrite双写先写一份到共享表空间,然后写入数据文件,恢复过程需要使用完整的16K恢复,但会带来IO两倍写入和性能影响。
技术原理:鲲鹏SSD原子写特性通过硬件特性来消除MySQL Doublewrite软件实现双写冗余机制,减少IO写操作和消除Doublewrite双写内存管理消耗从而达到性能提升。
预期效果:
开启原子写特性后,64以上并发性能稳定且略有上升;不开启原子写特性,64以上并发性能下降趋势明显。
SSD寿命提升20%。
如何使用:
SSD硬盘内置原子写特性driver,控制参数开启。
OS使用16K的EXT4文件系统并启用bigdata属性。
数据库关闭Doublewrite双写。
OS版本:CentOS 7.6和openEuler 20.03。
图1 自研SSD原子写特性实现原理图
特性价值:
TPCC模型 32以上并发优势明显,64并发以上写性能提升大于15%。
消除double write双写,SSD寿命预计提升20%。