NVMe SSD原子写
应用场景:MySQL场景
MySQL InnoDB block块为16KB,文件系统为4KB,传统硬盘512字节,16KB写入需要保证原子性,而在线日志无法恢复断页情况。MySQL通过Doublewrite双写先写一份到共享表空间,然后写入数据文件,恢复过程需要使用完整的16KB恢复,但会带来IO两倍写入和性能影响。
技术原理:鲲鹏SSD原子写特性通过硬件特性来消除MySQL Doublewrite软件实现双写冗余机制,减少IO写操作和消除Doublewrite双写内存管理消耗从而达到性能提升。
图1 NVMe SSD原子写特性实现原理图
预期效果:
- 开启原子写特性后,64以上并发性能稳定且略有上升;不开启原子写特性,64以上并发性能下降趋势明显。
- SSD寿命提升20%。
如何使用:
- SSD硬盘内置原子写特性driver,控制参数开启。
- OS使用16KB的EXT4文件系统并启用bigdata属性。
- 数据库关闭Doublewrite双写。
特性指标:
- 使用TPCC模型时,当并发数达到32以上时,系统的性能将会有明显的提升;当并发数达到64以上时,系统的写性能将会提高超过15%。
- 消除Doublewrite双写,SSD寿命预计提升20%。
本次特性验证基于如下环境:
硬件配置 |
CPU |
内存 |
数据盘 |
OS |
网卡 |
数据量 |
DB size |
---|---|---|---|---|---|---|---|
TaiShan服务器 |
2*华为鲲鹏920 5250处理器 |
12*32GB |
自研SSD 1*1.6T ES3000 V5 |
CentOS 7.6、openEuler 20.03或openEuler 22.03 |
10GE |
8*5亿行 |
32GB |
父主题: 方案特性