5.1 硬件因素
NAND Flash本身
后端通道数(CE数量)及总线频率
后端通道数决定了并发NAND Flash的数量,决定了并发能力。不同的SSD控制器支持不同数量的通道数,也决定了SSD的后端吞吐带宽能力。NAND Flash Channel的总线频率也决定了访问Flash的性能。
SSD控制器的处理能力
FTL
SSD 控制器架构
通常SSD控制器采用SMP或者MPP两种架构
内存支持容量
为了追求高性能,SSD内部的映射资源表会常驻内存,映射表的内存占用大小是盘容量的0.1%,当内存容量不够大时,会出现映射表换入换出的问题,影响到性能。
PCIe的吞吐带宽能力
温度对性能造成影响
5.2 软件因素
数据布局方式
垃圾回收/wear leveling调度方法
OP预留
Bit error处理影响性能.
FTL算法
IO调度算法
驱动软件
IO Pattern对性能产生影响
使用寿命对性能造成影响
5.3客观因素
使用时间越长会导致SSD性能变差
环境温度也会对性能造成影响
5.3.1 GC 对性能的影响
SSD内部有一个非常厚重的软件层,该软件层用来解决NAND Flash的问题,采用log-structured的方式记录数据。
在性能测试的时候,需要对盘进行老化预处理。通常预处理的方法是顺序写满盘,然后再随机两遍写盘,预处理完成之后,再对盘进行随机读写测试,得到Spec中定义的值。稳态值基本可以认为是盘的下限性能。
在稳态情况下,SSD内部的GC会全速运行,会占用较多的NAND Flash后端带宽。背景流量和前端数据流的比例也就体现了SSD盘的写放大系数,写放大系数越大,背景流量占用带宽越多,SSD对外体现的前端性能也就越差。
GC是影响性能的重要因素,除了影响性能之外,GC会增大写放大,对SSD的使用寿命产生影响。从软件层面的角度考虑,可以通过优化应用IO Pattern的方式优化SSD内部GC,从而进一步提升SSD的性能,优化使用寿命。对于下一代更为廉价的QLC SSD介质,就需要采用这种优化思路,否则无法很好的满足实际业务的应用需求。
5.3.2 IO Pattern 对性能的影响
IO Pattern会对SSD的性能产生严重影响,主要表现在如下几个方面:
不同的IO Pattern 会产生不能的写放大系数
不同请求大小的IO之间会产生干扰,读写请求之间会产生干扰+
5.3.2.1 顺序写入pattern对SSD性能优化的奥秘