---
title: NVMe SSD原子写
description: "应用场景：MySQL场景"
url: https://www.hikunpeng.com/document/detail/zh/kunpengdbs/twp/kunpengdbs_19_0011.html
sourcePath: /source/zh/kunpengdbs/twp/kunpengdbs_19_0011.html
indexId: 806367a8cfc6c0e724a978a2d473cad0f08dfeaf3d37bcfda1c747a084c6d0e849
---
# 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%。

特性指标：

- 使用TPC-C模型时，当并发数达到32以上时，系统的性能将会有明显的提升；当并发数达到64以上时，系统的写性能将会提高超过15%。
- 消除Doublewrite双写，SSD寿命预计提升20%。


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

| 硬件配置 | 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 |
