NVMe SSD原子写

应用场景:MySQL场景

MySQL InnoDB block块为16KB,文件系统为4KB,传统硬盘512字节,16KB写入需要保证原子性,而在线日志无法恢复断页情况。MySQL通过Doublewrite双写先写一份到共享表空间,然后写入数据文件,恢复过程需要使用完整的16KB恢复,但会带来IO两倍写入和性能影响。

技术原理:鲲鹏SSD原子写特性通过硬件特性来消除MySQL Doublewrite软件实现双写冗余机制,减少IO写操作和消除Doublewrite双写内存管理消耗从而达到性能提升。

图1 NVMe SSD原子写特性实现原理图

预期效果:

如何使用:

  1. SSD硬盘内置原子写特性driver,控制参数开启。
  2. OS使用16KB的EXT4文件系统并启用bigdata属性。
  3. 数据库关闭Doublewrite双写。

特性指标:

本次特性验证基于如下环境:

硬件配置

CPU

内存

数据盘

OS

网卡

数据量

DB size

鲲鹏服务器

2*华为鲲鹏920 5250处理器

12*32GB

自研SSD

1*1.6T ES3000 V5

CentOS 7.6、openEuler 20.03或openEuler 22.03

10GE

8*5亿行

32GB