SSD性能

空盘性能:SSD出厂时磁盘没有任何数据情况下的性能
稳态性能:当SSD使用一段时间后,在垃圾回收(GC)机制全速运行时的性能。
通常情况下,空盘性能要远高于稳态性能,企业级SSD标称的性能指稳态性能。

SSD性能抖动

影响SSD性能和导致SSD性能抖动的因素:
1、比特错误(BitError)
2、读/写/擦除操作冲突
3、垃圾回收(GC)
4、读平衡(Read Disturb)

比特错误(BitError)

NAND Flash作为半导体介质,制造工艺/NAND类型/使用寿命/存放时间等因素都影响NAND比特出错率。
1、当Bit Error较小范围时,BCH或LDPC解码器能快速解码,将读请求控制100us左右
2、当Bit Error超出了快速解码的范围,则会导致解码器消耗更多时间进行解码,导致读延迟
3、当Bit Error过多导致解码器无法正确解码,则需要SSD使用Read Retry机制尝试通过调整NAND参考电压来重新读取数据,导致更大范围延迟
4、当Bit Error过多且Read Retry机制失败后,需要SSD内部的NAND级别RAID来进行数据恢复,产生更高延迟。 在SSD磁盘使用寿命不断耗尽过程中,NAND Flash的Bit Error错误会越来越高,因比特错误导致读延迟的概率和读延迟时间也会随之增高。

读写/擦除操作冲突

由于NAND Flash的擦除操作以区为单位,擦除操作耗时较高(2ms左右),当读写操作与擦除操作冲突时,会导致读写操作出现延迟。

垃圾回收(GC)

当SSD内部进行垃圾回收(GC)操作时,会消耗SSD磁盘资源,导致SSD性能下降

读平衡(Read Disturb)

当SSD某块区域被频繁读取,SSD内部Firmware会启用读平衡(Read Disturb)机制,将该区域数据迁移到寿命较高的区域,该操作同样会消耗SSD磁盘资源并导致SSD性能下降。

MySQL Disk--SSD磁盘性能抖动问题的更多相关文章

  1. 12 mysql性能抖动

    12 mysql性能抖动 sql语句为什么变”慢”了 在介绍WAL机制时,innodb在处理更新语句的时候,只做了写日志这一个磁盘操作,就是redo log,在更新内存写完redo log之后,就返回 ...

  2. 运用ASMIOSTAT脚本监控asm disk磁盘性能

    1,脚本作用: 类似于OS的iostat检查磁盘的I/O性能,ASMIOSTAT 脚本用来检查ASM磁盘的性能, 2,下载AMSIOSTAT脚本http://files.cnblogs.com/fil ...

  3. Windows性能计数器--磁盘性能分析Disk

    Physical Disk: 单次IO大小 Avg.Disk Bytes/Read Avg.Disk Bytes/Write IO响应时间 Avg.Disk sec/Read Avg.Disk sec ...

  4. MySQL服务器SSD性能问题分析与测试

    [问题] 我们有台HP的服务器,SSD在写IOPS约5000时,%util达到80%以上,那么这块SSD的性能究竟有没有问题,为解决这个问题做了下面测试. [工具] blktrace是linux下用来 ...

  5. MySQL中主键的选择与磁盘性能

    偶然看到了“Fotolog: Scaling the World\'s Largest Photo Blogging Community”,才发现很多数据库的优化其实道理都很简单,至高境界是当你面对问 ...

  6. MySQL数据库在IO性能优化方面的设置选择(硬件)

    提起MySQL数据库在硬件方面的优化无非是CPU.内存和IO.下面我们着重梳理一下关于磁盘I/O方面的优化. 1.磁盘冗余阵列RAID RAID(Redundant Array of Inexpens ...

  7. FAQ | 是什么导致MySQL数据库服务器磁盘I/O高(本文章来自知数堂)

    FAQ | 是什么导致MySQL数据库服务器磁盘I/O高 2016-12-26 叶金荣 老叶茶馆 0.导读 有个MySQL服务器的磁盘I/O总有过高报警,怎么回事? 本文约1500字,阅读时间约10分 ...

  8. 理解及快速测定 Azure 虚拟机的磁盘性能

    随着越来越多的用户将生产系统迁移到 Azure 平台的虚拟机服务中,Azure 虚拟机的性能愈发被关注.传统的数据中心中,我们通常使用 CPU,内存,存储和网络的性能来衡量生产压力.特别是对于 IO ...

  9. 【虚拟机-磁盘管理】理解及快速测定 Azure 虚拟机的磁盘性能

    随着越来越多的用户将生产系统迁移到 Azure 平台的虚拟机服务中,Azure 虚拟机的性能愈发被关注.传统的数据中心中,我们通常使用 CPU,内存,存储和网络的性能来衡量生产压力.特别是对于 IO ...

随机推荐

  1. alias和alias_method的区别:

    1.alias 是 Ruby 的一个关键字,因此使用的时候是 alias :new name :oldname,而 alias_method 是 module 类的一个方法,因此使用的时候是 alia ...

  2. hdu4847 kmp

    Chen, Adrian (November 7, 2013). “Doge Is An Ac- tually Good Internet Meme. Wow.”. Gawker. Retrieved ...

  3. Oracle性能诊断艺术-读书笔记(脚本dbms_xplan_output截图-非常好的)

  4. Oracle 声明常量 (转)

    原文地址 Oracle 声明常量 常量在声明时赋予初值,并且在运行时不允许重新赋值.使用CONSTANT关键字声明常量. 声明常量 DECLARE pi CONSTANT number :=3.14; ...

  5. EBS存储附件信息

    附件三种形式 1.文件 2.url 3.文本 三种方式存储不一样 1.文件是存blob 2.url是存一个链接信息,读出来的时候,就是一个蓝色可点链接    fnd_attached_document ...

  6. Oracle 12cR1中性能优化新特性之全数据库缓冲模式

    通常情况下,Oracle会决定哪些数据会留在缓冲区中.当没足够的空间时,数据会被写出内存.此外,为了避免大量读取将有用的信息挤出缓冲区,Oracle对有些操作也许会才去绕过缓冲区的措施.Oracle1 ...

  7. win7 安装express

    1.以管理员身份打开cmd(避免出错) npm install -g express-generator@4 Start the server: npm start 链接,github官网说明 htt ...

  8. bzoj1600

    题解: 简单dp 显然不能超过一半 代码: #include<bits/stdc++.h> using namespace std; ][]; int main() { f[][]=; s ...

  9. Spring学习笔记之各个包的作用

    (1) spring-core.jar 这个jar文件包含Spring框架基本的核心工具类,Spring其它组件要都要使用到这个包里的类,是其它组件的基本核心,当然你也可以在自己的应用系统中使用这些工 ...

  10. python 元组(tuple)

    面试python我想每个人都会被问一个问题,就是python中的list和tuple有什么区别? 一般情况下,我会回答,list元素可变,tuple元素不可变(书上或者其他的博客都是这么写的),一般情 ...