SSDPerformance测试简介
SSD Performance测试简介
SNIA给Client SSD与Enterpri SSD都制定了Performance test (性能测试)的规范,可以到其⽹站 下载。
要进⾏SSD的Performance Test,⾸先要理解⼏个关键概念。
FOB:Fresh Out of Box, 指的是刚开封全新的盘,此时SSD的性能类似于悟饭同学的愤怒形态,战⽃⼒爆表但不持久,并不是这块盘在未来正常使⽤过程中的真实能⼒。
Transition:经过⼀段的读写,战⽃⼒逐步降低,逐步趋向于稳定状态,这个过程称为转换状态。
Steady State: 战⽃⼒数值稳定在⼀个区间,Performance相关的数据,例如Throughput(吞吐量),IOPS,Latency(延迟)都必须在Steady State下获取,据此判断到底是超级赛亚⼈,还是战五渣。
看看下⾯这张图,不同的盘Performance数据有所不同,但趋势⼀样 – 爆表à下降à稳定:
Steady Stage的官⽅计算⽅法 (x为测量窗⼝内某个时刻的Performance值):
毛血旺的家常做法材料
[Max(x)-Min(x)]≤ Average (x) * 20%
And
Slope≤10%,整个测量区间内所有Performance数值的最佳线性拟合中的[Max(x)-Min(x)]≤ Average (x) * 10%
数学是体育⽼师教的,我把原⽂贴在这⾥,⼤家帮我斧正。
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 Era, SANTIZIE Device (Block Era 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命令的范围
Data pattern: Performance测试必须使⽤random data pattern (指向NAND Flash中写⼊的数据)。
基本测试流程
1. Purge the device – 擦除SSD
2. Run Workload Independent Precondition – ⽐如⽤128K的BS顺序把盘写两遍
3. Run Test (包括Workload Dependent Precondition)– 设置好相关参数(OIO/Thread, Thread count, Data Pattern等)开始
进⾏Workload Dependent Precondition,最多跑25个round
4. 假设25个round以内达到了Steady Status,例如第x次。那么:
邓琳琳现在多高了1. Round 1:x 称为Steady Status收敛区间
2. Round (x-4):4 称为测量区间(Measure Window)
如果25个round还没有达到Steady Status, 可以选择:
1. 继续步骤3直到达到Steady Status并记录x
2. 直接取x=25
注意事项: 步骤2到步骤3之间不可以中断,停顿。
Performance测试项⽬包括,IOPS测试,Throughput 测试,Latency测试和饱和写测试(可选)
以IOPS测试为例说明⼀下步骤:
酒店陶瓷
Purge SSD
Workload Independent Preconditioning — ⽤128K的BS把SSD写两遍
Workload Dependent Preconditioning and Test
⽤RW Mix(100/0, 95/5, 65/35, 50/50, 35/65, 5/95,0/100), BS(1024K, 128K, 64K, 32K, 16K, 8K, 4K, 512B)组合进⾏Random IO
每个Round包括7*8=56个组合,每个组合跑⼀分钟并记录结果
以R/W Mix=0/100, BS=4K这个组合的IOPS结果判断是否到达Steady Status (参考前⽂Steady Status判断标准)
在测量区间(Measure Window)记录相关数据
Throughput测试和Latency测试的步骤⼤致相同,需要注意的是:
Throughput测试:只有两个组合,BS=1024K Sequence Write和BS=1024K Sequence Read,⽤Sequence Write的值来判断Steady Status
Latency测试:只使⽤3种RW Mix组合(100/0,65/35,0/100)和3种BS(8K,4K, 512Byte),另外需要把队列数和线程数都设为1
洛阳纸贵的典故
饱和写测试Write Saturation (WSAT) test,对SSD进⾏长时间的Random 4K写操作,评测其经过长期写⼊以后的Performance表现。
孕晚期胎动
关于饱和写测试,国外知名⽹站的弟兄们曾经花了18个⽉,拿了6块不同⼚商的SSD进⾏了惨⽆⼈道的,超过2PB的连续写⼊操作。