最近进行了SM2262的性能曲线测试。
在之前的评测文章提到过:
- SMI2262 主要面向于Client市场,支持8个NAND Channel, PCIe Gen3x4, NVMe 1.3。
- 我们测试的开发板是2接口,容量512GB的版本, 采用美光B16A 3D TLC NAND和南亚DDR3 DRAM (512MB)
测试工具使用FIO,每次测试前均使用”NVMe format /dev/nvme0n1 –s=1”命令进行secure erase。
测试包括随机写和顺序写两部分,分别运行5小时,FIO配置如下:
顺序写: BS=128K, IODepth=128, ioengine=libaio, 每秒记录一次Throughput
随机写:BS=4K, IODepth=128, ioengine=libaio, randrepeat=0,每秒记录一次IOPS
顺序写测试结果:
这块512G的SM2262在5个小时的连续写过程中,绝大部分时候写入速度在590MB/S~550MB/之间,偶尔会掉到500MB/S~450MB/S区间。
比较奇怪的是,即使我们进行了Secure Erase,一开始这块盘的速度就只有580MB/S左右,我们尝试了NVMe CLI的secure erase和windows的慢速format,都无法使其恢复到刚拿到时1700MB/S的速度。
以下是之前我们刚拿到SMI2262时性能测试的结果:
在进行性能曲线测试之前,这块盘我们进行了稳定性测试,包括:
- 2000次的S3/S4测试
- 2000次的BIT+S3/S4测试
- 5000次的掉电测试
- 24小时的读写比较测试
- PCIe Link Retrain: 2万次
- PCIe Link Speed Change: 2万次
- Cold boot: 1千次
Secure Erase无法恢复性能的原因,不能直接归结为跑了以上的测试项目导致。
我们内部讨论了一下,有点未经证实的想法分享给大家:
- 开卡之后启动SLC mode,block快写完后换成TLC – 这种思路的考虑是消费级用户很少反复的覆盖全盘;
- 512GB,使用B16闪存,这个闪存容量最为32GB,所以一共16个Die,有效tp为800us左右,所以16*32/800=640, TLC的性能满打满算就这么多
随机写测试结果:
随机写的IOPS峰值在145K左右,进过一段时间的写入后,因为脏块逐渐增多,IOPS会降低到10K以下,之后会逐渐恢复到140K以上。
看一下Samsung 960EVO对比的情况
顺序写:
960EVO在2000MB/S级别,SM2262在500MB/S级别,5小时内两者都没有较大的波动
随机写:
960EVO峰值在300K左右,SM2262峰值在150K左右,同时960EVO的垃圾回收速度更快,5小时内960EVO的性能6次回到接近峰值的水平,而SM2262为3次。
之前我们写的是960EVO GC效率更高,这个说法不严谨,效率一般用于形容在读写速度相同的情况下垃圾回收算法的能力,而960EVO的读写速度明显高于SMI2262,所以用速度更合适一些。
另外,感谢Ron在作者群讨论的时候指出: SMI 2262维持在最佳性能的时间要明显长于960EVO (960EVO的IOPS是非常快速的降低),按照消费级用户日常写写停停的方式,SMI 2262的调教可能表现会更好。