以轨迹为基础的测试方法很好的模拟了真实应用情形:
对现实用户所有的I/O操作进行追踪和采集
然后将采集的I/O轨迹回放到测试盘
回放过程中对测试盘的I/O再一次进行跟踪采集
记录的是I/O操作时间,而不是系统所耗时间
不同的轨迹
人为设置的vs 真实的;使用模式的差异,采集时间短vs长
此外,轨迹时序也值得考虑
不同的回放方法
不同的工具和选项,轨迹不加修改直接回放vs加以修改后回放
数据预填充,单任务顺序运行,多任务运行等
不同的统计指标
高迸发部分回放vs全部轨迹回放vs两者组合
MB/s vs 延时 vs 时间
数据预填充 & 工作负载的实际影响
通用的基准 测试(SYSMark*, PCMark* CrystalDiskmark*) 通常写入量较少,使用LBA地址范围有限,仅能填充到空白区,且工作负载的组合并不典型。并且用户不希望他们的数据被改写,再者不同的数据预准备其结果也将会发生变化,还有刚好写入空白区出现最佳性能的情况,因此,测试必须要达到一种“稳态”性能。
基于轨迹的性能测试试验: 配置
工具:
英特尔性能评估分析套件(IPEAK)
PCMark Vantage*中所使用的同样工具
方法:
将保存的用户轨迹予以回放
回放过程中跟踪被测设备的性能
分析结果,定义指标记分方法
被测设备:
英特尔SSD,非英特尔SSD,HDD (7200 & 10K RPM)
轨迹来源:
办公用的预装Windows 7*的笔记本电脑
没有人为加速设置
读/写、LBA地址范围以及存储的数据与真实的应用模式相匹配
数据来源于配置有SSD的系统,因此数据采集时间是一大挑战
10天的跟踪,包括~70 GB写和~120 GB的读
回放:
轨迹回放两遍: >>SSD容量, 以得到稳态性能
硬盘的每个LBA都被预先写入数据– 对于SSD来说最恶劣的情形
TRIM操作在回放时被略过–以使SSD一直处于写满状态
采用原始的时序,但有两点不同
命令间的停顿保持恒定,完成一项操作后立刻进行下一项操作以求与真实的使用情形相仿
大于25ms的停顿被缩减为25ms,以平衡脏数据回收时间和整个测试时间
曾尝试过10x时间(250ms),区别有限
数据传送量vs时间的图表显示了高I/O操作导致的阶跃: 迸发性的IO需求
那些急速上升的点看起来是非迸发性的,然而事实上其恰恰反映了230 MB/s的迸发性的IO需求!
迸发点通常是I/O操作对性能影响较大的时间段
通常的“沙漏瞬间”,像打开应用、保存文件等操作
CPU发送请求快于SSD可以响应的时间
非迸发的时间段有时会有稍许影响,但一般来讲影响甚微
例如: 从网上下载数据并不依赖于硬盘的速度
迸发分析
选择迸发轨迹所需的两个 原则:
至少10MB数据传输
没有大于100?s的停顿时间
按照上述原 则采集 的迸发 轨迹看 起来能 很好的 测试SSD的峰值性能
总共50GB的数据传输,远大于大多数基准测试
平均98%的繁忙时间,只有2%命令间歇
平均序列深度为20
平均迸发为30MB,最大是~750MB
迸发轨迹 vs 全轨迹测试
迸发轨迹测试和全轨迹测试的性能呈线性相关,但不够明显
同样的盘有平均12%的偏差,最大偏差达到25%
短时间 vs 长时间轨迹
未来的SSD
SSD的性能在当前应用环境下并未得到完全体现,如今的应用程序和操作系统大多针对HDD开发,尽管消除90%的存储时间是那么的完美,但是这种好处却受到应用程序和操作系统的制约。相信在未来,应用程序和操作系统的改变将允许系统充分利用SSD不断提升的性能。
原文链接:http://tech.watchstor.com/labs-130929.htm