转载自:http://www.ssdfans.com/?p=4698

SSD Performance测试简介

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数据有所不同,但趋势一样 – 爆表à下降à稳定:

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 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命令的范围

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表现。

关于饱和写测试,国外知名网站TechReport.com的弟兄们曾经花了18个月,拿了6块不同厂商的SSD进行了惨无人道的,超过2PB的连续写入操作。

原文链接:http://techreport.com/review/24841/introducing-the-ssd-endurance-experiment

中文链接(蛋蛋版):http://www.ssdfans.com/?p=672

SSD Performance测试简介相关推荐

  1. DL之SSD:SSD算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略

    DL之SSD:SSD算法的简介(论文介绍).架构详解.案例应用等配图集合之详细攻略 目录 SSD算法的简介(论文介绍) 0.SSD实验结果 1.架构图集合 2.SSD VS Yolo SSD算法的架构 ...

  2. 【Google Play】Google Play 开放式测试 ( 简介 | 发布开放式测试版本 )

    Google Play 上架完整流程 系列文章目录 [Google Play]创建 Google 开发者账号 ( 注册邮箱账号 | 创建开发者账号 ) [Google Play]创建并设置应用 ( 访 ...

  3. pit和systick_PIT和TestNG突变测试简介

    pit和systick 变异测试是一种技术,它可以发现测试未涵盖代码的哪些部分. 它类似于代码覆盖范围 ,但变异测试不限于在测试期间执行给定行的事实. 这个想法是修改生产代码(引入突变),这应该改变其 ...

  4. Spring MVC:测试简介

    测试是软件开发中最重要的部分之一. 井井有条的测试有助于使应用程序代码保持良好状态,并且处于工作状态. 有很多不同类型的测试和方法. 在本文中,我想对基于Spring MVC的应用程序进行单元测试进行 ...

  5. PIT和TestNG突变测试简介

    变异测试是一种技术,它可以发现测试未涵盖代码的哪些部分. 它类似于代码覆盖范围 ,但变异测试不限于在测试期间执行给定行的事实. 这个想法是修改生产代码(引入突变),这应该改变其行为(产生不同的结果)并 ...

  6. 基于python渗透测试_Python中基于属性的测试简介

    基于python渗透测试 by Shashi Kumar Raja 由Shashi Kumar Raja Python中基于属性的测试简介 (Intro to property-based testi ...

  7. 软件测试测试 python_Python测试简介

    软件测试测试 python by Goran Aviani 通过Goran Aviani Python测试简介 (An introduction to testing in Python) You h ...

  8. CTS(1)---谷歌CTS测试简介

    谷歌CTS测试简介 CTS测试 1.设置CTS(物理环境) WLAN 和 IPv6 CTS 测试需要满足以下要求的 WLAN 网络:支持 IPv6,可以将被测设备 (DUT) 视为隔离客户端,并可以连 ...

  9. 在线ssd测试软件,AS SSD Benchmark测试

    AS SSD Benchmark测试 ● AS SSD Benchmark AS SSD是基于全方位性能的测试软件,它使用了非常深度的Queue Depth(QD)队列深度,以及非压缩测试. • AS ...

最新文章

  1. python init文件作用___init__.py 文件的作用
  2. ML:教你聚类并构建学习模型处理数据(附数据集)
  3. python计算机体系三层结构_Python tkinter 实现简单登陆注册 基于B/S三层体系结构,实现用户身份验证...
  4. python查找数组中出现次数最多的元素
  5. python消息队列框架持久化_消息队列如果持久化到数据库的话,相对于直接操作数据库有啥优势?...
  6. python变量输出到文件_使用函数将多个变量写入文件
  7. 禅道8.2-9.2.1注入GetShell
  8. (王道408考研操作系统)第五章输入/输出(I/O)管理-第一节3:I/O控制方式
  9. maya显示已安装_【3D建模】Maya操作秘籍83招(一)
  10. 由于UPS故障,造成所有服务器断电。( 重启后,机器的IP也许会发生改变(包括服务器))
  11. ubuntu16.04下编译安装Autoware
  12. STM32通过定时器捕获的方法驱动(HC-SR04)超声波测距模块
  13. 如何做项目总结与汇报
  14. 新浪微博数据采集以及分析方法(干货)
  15. FastReport VCL开发人员手册:自定义报表组件编写
  16. linux 脚本录制软件,linux下运行脚本蜀门录制
  17. (Python)五子棋
  18. 你与顶级UI设计师的区别在哪里
  19. 吴恩达机器学习笔记第一周
  20. 1.3 OC与OD门(硬件基础系列)

热门文章

  1. 【工作笔记】Springboot一个比较通用的数据脱敏处理办法
  2. 如何在Linux系统服务器中重命名目录
  3. python数字分割
  4. 数字电路课设_电子抢答器
  5. 创建json数组与json数组渲染到HTML
  6. ssm项目——CRM客户管理系统开发准备
  7. 「SQL数据分析系列」4.过滤操作
  8. Web全栈~31.并发
  9. 农历虎年快到了,我用 Python 写副春联恭祝大家幸福平安
  10. 什么是数据仓库的主题