MySQL Disk--SSD磁盘性能抖动问题
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性能下降。