NVMe SSD原子写

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群版 2核4GB 100GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用版 2核4GB 50GB
简介: NVMe SSD原子写

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%。

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2月前
|
存储 固态存储 数据库
SSD接口选择指南:PCIe与SATA性能大比拼
【4月更文挑战第21天】
431 0
|
缓存 固态存储 测试技术
这里有一款非常优秀,而且很有上进心的SSD
这里有一款非常优秀,而且很有上进心的SSD
|
缓存 固态存储 Oracle
浅析nvme原子写的应用场景
在NVME协议Command Set Spec中,我们可以看到针对nvme设备相关的原子操作的定义相关参数。原子写的简单理解就是,一笔写操作,要不全部写入盘,要不全部未写入盘,不存在部分写入+部分未写入的情况,最大限度保证数据一致性。
|
存储 固态存储 Java
你所不知道到的NVMe
作者:查斌 马涛
1972 0
你所不知道到的NVMe
|
存储 固态存储 Java
不用闪存了,Optane SSD为何还要28%的OP?
3D XPoint的容量超配比例,为啥跟SSD这么像?
1953 0
|
固态存储 测试技术 Linux
你所不知道的NVME
NVMe SSD具有高性能、低时延等优点,是目前存储行业的研究热点之一,但在光鲜的性能下也同样存在一些没有广为人知的问题,而这些问题其实对于一个生产系统而言至关重要,例如: QoS无法做到100%保证;读写混合情况下,与单独读相比,性能下降严重,且读长尾延迟比较严重;所以如何利用好NVMe盘的性能,并更好的为业务服务,我们需要从硬件,Linux内核等多个角度去剖析和解决。
4528 0

热门文章

最新文章

  • 1
    流量控制系统,用正则表达式提取汉字
    25
  • 2
    Redis09-----List类型,有序,元素可以重复,插入和删除快,查询速度一般,一般保存一些有顺序的数据,如朋友圈点赞列表,评论列表等,LPUSH user 1 2 3可以一个一个推
    26
  • 3
    Redis08命令-Hash类型,也叫散列,其中value是一个无序字典,类似于java的HashMap结构,Hash结构可以将对象中的每个字段独立存储,可以针对每字段做CRUD
    25
  • 4
    Redis07命令-String类型字符串,不管是哪种格式,底层都是字节数组形式存储的,最大空间不超过512m,SET添加,MSET批量添加,INCRBY age 2可以,MSET,INCRSETEX
    27
  • 5
    S外部函数可以访问函数内部的变量的闭包-闭包最简单的用不了,闭包是内层函数+外层函数的变量,简称为函数套函数,外部函数可以访问函数内部的变量,存在函数套函数
    23
  • 6
    Redis06-Redis常用的命令,模糊的搜索查询往往会对服务器产生很大的压力,MSET k1 v1 k2 v2 k3 v3 添加,DEL是删除的意思,EXISTS age 可以用来查询是否有存在1
    30
  • 7
    Redis05数据结构介绍,数据结构介绍,官方网站中看到
    21
  • 8
    JS字符串数据类型转换,字符串如何转成变量,+号只要有一个是字符串,就会把另外一个转成字符串,- * / 都会把数据转成数字类型,数字型控制台是蓝色,字符型控制台是黑色,
    19
  • 9
    JS数组操作---删除,arr.pop()方法从数组中删除最后一个元素,并返回该元素的值,arr.shift() 删除第一个值,arr.splice()方法,删除指定元素,arr.splice,从第一
    19
  • 10
    定义好变量,${age}模版字符串,对象可以放null,检验数据类型console.log(typeof str)
    19