一款SSD研发出来,除了内部的层层测试,也少不了送出去进行各种认证测试。
SATA-IO Plugfest和IW(Interoperability Workshop)
作为SATA协议的官方组织,SATA-IO每年都会组织厂商一起坐坐,给大家一个互相切磋的机会进行兼容性,交互性以及新功能的测试。
图 是2008年的活动的Agenda,Plugfest三天,IW五天
图1-1 SATA-IO Event日程示例
IW和Plugfest有所不同
IW的对象是量产产品,由SATA-IO主导,有固定的测试流程和项目,并且测试结果需要提交SATA-IO,通过测试的设备可以加入Integrators List;
Plugfest的对象是开发阶段的产品,厂商之间互相玩耍,测什么,怎么测大家自己说了算,测试结果不用提交给SATA-IO;
官方网站上有具体介绍以及报名方式:
https://www.sata-io.org/plugfests
https://www.sata-io.org/interoperability-workshops
PCIe SIG Compliance Program
作为PCIe协议的官方组织,PCIe SIG的一致性测试项目包括以下方面:
Electrical Testing – 针对平台和卡的Tx和Rx电器性能进行测试
Configuration Testing – PCIe configuration space测试(Tool:PCIE CV)
Link Protocol Testing – 针对设备进行链路层协议测试
Transaction Protocol Testing – 针对设备进行传输层协议测试
Platform BIOS Testing – 针对平台BIOS进行测试,能否识别并正确配置设备
通过PCIe SIG的测试同样可以加入Integrators List。
官方网站上提供Test Guide下载,包括测试描述,规格,流程以及相关的工具
https://pcisig.com/developers/compliance-program
UNH IOL NVMe Test
UNH-IOL全称是 University of New Hampshire InterOperability Laboratory,是业界著名的公开实验室,提供多个领域的测试服务。
看一下图感受下这个实验室涉及的领域:
图1-2 IOL交互性测试实验室涉及领域
UNH-IOL定义了NVMe Test Suites, 包括:
· NVMe Conformance Test Suite
· NVMe Interoperability Test Suite
Test Suite会跟着NVMe Spec更新持续更新,厂商可以自行下载使用
链接:https://www.iol.unh.edu/testing/storage/nvme/test-suites
UNH-IOL贴心的提供了NVMe 的测试工具
· IOL INTREACT PC EDITION Software: 基于UNH-IOL自己的NVMe Conformance Test Suite开源项目的工具,图形界面上手容易。
· IOL INTERACT Teledyne-LeCroy EDITION Software:高级版本,必须配合LeCroy的PCIe Exerciser和Analyzer使用,能够自动跑完NVMe Conformance Test Suite里面要求的测试,而且能够自动抓取trace以供分析。
链接:https://www.iol.unh.edu/solutions/test-tools/interact
免费是为了更好的收费,UNH-IOL的测试服务,完成下列指定项目,加入NVMe Integrators List:
· Conformance testing using IOL INTREACT PC EDITION Software
· Conformance testing using IOL INTERACT Teledyne-LeCroy EDITION Software
· Interoperability testing using VDbench software
链接:https://www.iol.unh.edu/testing/storage/nvme
SSD 性能测试
SNIA给Client SSD与Enterprise SSD都制定了Performance test (性能测试)的规范,可以到其网站 www.snia.org 下载。
要进行SSD的Performance Test,首先要理解几个关键概念。
FOB:Fresh Out of Box, 指的是刚开封全新的盘,此时SSD的性能类似于悟饭同学的愤怒形态,战斗力爆表但不持久,并不是这块盘在未来正常使用过程中的真实能力。
Transition:经过一段的读写,战斗力逐步降低,逐步趋向于稳定状态,这个过程称为转换状态。
Steady State: 战斗力数值稳定在一个区间,Performance相关的数据,例如Throughput(吞吐量),IOPS,Latency(延迟)都必须在Steady State下获取,据此判断到底是超级赛亚人,还是战五渣。
看看图,不同的盘Performance数据有所不同,但趋势一样:爆表à下降à稳定。
图1-3 SSD性能变化趋势
Steady Stage的官方计算方法 (x为测量窗口内某个时刻的Performance值):
鄙人数学是体育老师教的,把原文贴在这里,供读者参考。
Slop(x)is less than 10%: Max(x)-Min(x), where Max(x) and Min(x) are the maximum and minimum values on the best linear curve fit of the x-values within the measure windows, is within 10% of Ave(x) value within the measurement window.
接下来,另外几个概念:
Purge (擦除): 每次进行Performance test前都必须进行Purge动作,目的是消除测试前的其他操作(读写,其他测试)带来的影响(比如,一段小BS的随机读写之后立即进行大BS的顺序读写,这时候大BS的数据会比较差),从而保证每次测试时盘都是从一个已知的,相同的状态下开始。简单来说,可以把Purge理解为:让盘回到FOB状态。
实现的Purge方法可以是:
· ATA:Security Erase, SANTIZIE Device (Block Erase Ext)
· SCSI:FORMAT UNIT
· Vendor specific method (厂商的工具)
Precondition:通过对盘进行IO使其逐步进入Stead State的过程,分两步进行.
· Workload Independent Preconditioning (WIPC):第一步,读写时不使用测试的Workload
· Workload Dependent Preconditioning (WDPC): 第二步,读写时使用测试的Workload
Active Range: 测试过程中对盘上LBA发送IO命令的范围。
图1-4 SSD性能测试有效测试范围
Data pattern: Performance测试必须使用random data pattern (指向闪存中写入的数据)。
基本测试流程
(查看更多内容,扫描下图二维码,阅读原著和以上大图。)