PCEVA,PC绝对领域,探寻真正的电脑知识
开启左侧

寻找SSD的真实性能-PCEVA Storage Test系列测试开启

  [复制链接]
neeyuese 发表于 2016-8-15 19:12 | 显示全部楼层 |阅读模式
点击数:26916|回复数:144
前言:

现在SSD对测试软件的优化越来越过分,使得测试结果距离真正的使用体验却越来越远。用什么方法能探究SSD产品的真实性能呢?

你所看到的,只是别人希望你看到的。

我意识到,测试SSD混合读写,才能真正了解到SSD产品的本质。本文我就介绍混合读写的意义,以及我编写的测试软件的情况,之后我们会对手上的盘陆续进行混合读写测试,形成一个排名,以便玩家们了解到SSD产品的真实性能。

1、现有测试软件不靠谱的原因

我们先来看下测试软件的种类,我喜欢把他们主要分成3类:

第一类,模拟压力类,如ASSSD,Crystal Disk Mark,Txbench,IOmeter,FIO。
第二类,应用测试类,如SYSMARK,PCMARK系列的主测试部分。
第三类,记录回放类,如Intel NASPT,PCMARK系列软件的存储测试部分。

模拟压力类的测试软件依靠主机的测试引擎程序给SSD发送高强度负载的测试请求(比如,短时间内写入纯4KB的数据),依靠压榨SSD性能和响应请求的速度得出成绩来进行比较。ASSSD,Crystal Disk Mark,Txbench均属于此类软件中的傻瓜版,点一下开始就完成测试了,易用但是不准确,由于这些软件误差较大,受系统影响,因此导致很多用户无谓的纠结,也被水军利用误导消费者。IOmeter和FIO则属于此类软件中的进阶版,区别在于可以自定义测试项目,不过前者图形界面的功能已经跟不上时代了,后者则主要在Linux下命令行使用,较难上手,如能精通已属高手。




上图中我们可以看到传统机械硬盘和SSD在操作上的明显不同。举个例子,传统机械硬盘的操作就像跨栏运动,冲刺,跳,冲刺,跳,流程相对单一,而SSD则更像篮球运动,冲刺,运球,传球,发球,篮板球,躲闪等各种无规律的招式。所以使用模拟压力类的测试,易用但不准确,为什么这么说呢?因为存储器操作不会同一时间就一种指令,都是多种指令混合一起,而模拟压力一般只是单纯测一类指令,考验下机械硬盘还成,但是这对SSD来说简直是太轻松了,适当加入混合读写等测试才更有意义。

应用测试类的测试软件依靠运行在测试机上安装的应用软件,进行实时性能比较,看上去更准确,但其实也有自身的局限。




如上图所示,在PCMARK Vantage的存储测试中,机械硬盘和SSD之间的差距显得很大,SSD之间的差距也不小。但是在应用测试类软件SYSMARK中,平台差距(处理器,内存和显卡)导致的影响则更大,那么我们到底测试的是存储性能还是不同电脑整机的差距呢?

记录回放类的测试软件依靠在母盘记录脚本、在测试SSD上进行回放并依靠延迟表现来进行比较,测试精度会依赖于记录脚本的数据量,数据量太小的话会被测试主机和SSD固件的缓存策略给优化掉,数据量太大又往往不贴合用户实际。




上图中是我自用的机器进行了8个小时的I/O操作记录,每个I/O操作都是实打实的(类似上面举例的篮球运动各种技术动作),因为I/O的服务时间也被同时记录了,所以不受到主机平台的影响(接近于PCMARK 8的存储测试),回放这个操作记录就能较真实反映出SSD在我这个应用环境下的性能,但这些操作记录又不能代表其他用户的。

总之,由于测试方式比较落后,以及整机系统与SSD自身优化的影响,玩家常用的测试软件经常无法体现SSD的真实性能。那么怎样才能找到一个更接近真实的方法呢?我认为,这得先搞清楚用户SSD日常使用是什么状况。

拿我我自用的主机来说,我的SSD是Intel 730 480GB,抽了一天空记录了8个小时的日常使用I/O,得到如下信息:



8小时的时间,一共读取了3.22GB,写入了7.07GB,总繁忙时间加起来也就46秒(可想而知SSD压力多小),然后进行下数据分析。



上图显示在这8小时的I/O记录中,大部分的QD都在1。



读取和写入是同时进行的,但是并没有固定比率的关系,完全取决于实际情况。



SSD性能比较好,所以处理完请求后有充足的时间进行休息(内部可以做垃圾回收恢复性能)



大部分的数据块大小请求是4KB,还混入不少8KB至128KB的数据块。

以上数据说明了如下2点事实:

1、对于民用环境,SSD日常使用的压力很小,所以SSD的QD根本起不来,吞吐量足够满足单用户需求,每次需要读写的时候均能够发挥出SSD的各种优化特性,例如SLC Cache和即时压缩等。
2、虽然压力小,但日常操作均有混合读写的比例,不太有只读或者只写的情况发生,另外数据以随机访问和4-128KB数据块为主。


介绍到这里,使用经验比较丰富的玩家就能发现问题了——现有的测试软件无法区分轻载或重载、民用或企业级应用的前提条件,而是混一起跑分。这就像测试汽车,无论什么车型、什么价位,上来就一脚油门到底,这能测试出啥有用的信息?也就是看下热闹罢了。但对于实际要买来用的人,这种简单粗暴的测试方法无法帮助自己了解产品的特性,更无从得知所测试的产品适用哪种应用。

玩了这么多的SSD,也逐渐接触了业内很多专家,为了找寻SSD真实性能,我自己写了一个SSD测试软件,命名为PCEVA Storage Test,缩写PST。

2、PCEVA Storage Test测试软件介绍

说了这么多,我并不是要黑上文介绍的三类测试软件,实际上这三类软件有不同的测试重点:

第一类模拟压力类测试其实最适合测试SSD的垃圾回收效率。第二类应用测试与第三类记录回放测试,则应该是针对不用的应用方向制定不同的测试方案。我认为将这三种测试方法合理的结合起来,才能更全面和准确的掌握SSD产品特性。

这也是我制作PST的最基本的思路。在编写算法的同时,我也进行了大量的实际测试来验证算法是不是合理。这中间有很多尝试、失败,当然最后还是得到了比较满意的结果。以下我就从已经验证过的测试数据来介绍测试原理与测试效果。




2.1、SSD在民用条件下的轻载工作情况

本文上面我自己的8小时I/O记录就属于民用轻载工况了。

基于提到的那2点事实,所以这个测试我设计的脚本压力不大,包括
1、QD1的测试,因为民用轻载SSD的QD上不去。
2、加入混合读写的测试,这个就能体现SSD的真实水平了。

总的来说,PST轻载测试目的是能够得出SSD在日常使用中的模拟压力性能表现,相比ASSSD和Crystal Disk Mark来说准确度更高,也比大部分都虚高的消费级SSD官标值更具有说服力。

这套测试下来,耗时大概要24小时左右,每个盘会写入与读取大量数据,从而也能检验整个SSD的稳定性。每一个测试子项中间也会停顿5分钟以上,以便让trim生效。就以下面这几个产品为例,咱们来看看测试情况以及体现的意义。

包括浦科特M6Pro,M6S+和M7VC 256GB SSD上浦科特之前送测的产品,顺便加入建兴T9 256GB的数据。从这几个盘的测试数据与对比情况,就能发现很多问题,下面一一来看。



我们先来看单纯的读/写测试。在随机读取方面,由于测试基于QD1,所以无法靠缓存优化,比较的其实是单纯的颗粒延迟和固件算法,请重点看表格里的数据。测试数据中发现,M7V 256GB虽然是TLC颗粒,但随机写入的性能竟然在大多数情况下都领先建兴T9 256GB;直到数据块达到128KB(这个大小已经不能算随机了,完全可以合并优化)后M7V因为TLC颗粒写入瓶颈败下阵来。 持续读取小文件的测试,表现最差的是M6Pro 256GB,数据块达到128KB后开始扳回局面,M7V 256GB由于SLC Cache模式的存在占了便宜。持续写入方面和之前的随机写入表现差不多,直到浦科特M7V 256GB出现TLC颗粒速度瓶颈前,建兴T9 256GB垫底。

本着科学证伪的态度,我必须要给自己挑挑错,所以咱们再来看其他角度的验证:
既然建兴T9 256GB表现的那么不正常,接下来我们拿某站建兴T9 256GB的数据来说。





原帖作者用ASSSD连续不停的测了4次得出了4个不同的持续写入成绩,



原帖作者用ASSSD测试空盘和满盘区别,得出性能会下降10%的结论





原帖作者接下来用Fastcopy复制文件来证明这10%的性能衰减并不会影响用户体验。

其实看他这么多图,不如直接看我的表中数据,他的各种测试结果证明了我这个测试方法能更快得知产品的真实情况。我的测试表明,1MB块的建兴T9 256GB持续写入速度369.21MB/s,和他填盘98%图里的Fastcopy图中的速度接近。另外,大家平日复制文件真的用Fastcopy?除了特殊情况外,我反正是用windows自带的资源管理器(鼠标右键的复制/粘贴)。



我们再来看下不同数据块的持续混合读/写性能。之前的事实已经说明平日我们的操作不可能只有纯读和写,那么这张表里的数据则相对更有意义。在纯读/写模式下勉强还行的建兴T9 256GB在这里基本全部垫底,只有当浦科特M7V 256GB的TLC写入速度瓶颈出现后才勉强超过,eMLC速度干不过TLC? 所以说,迷信虚假宣传emlc性能的人,可以洗洗睡了,山寨建兴也不必成天在论坛上用马甲编故事,非要说写入需求多大,耐久度多高,混合读写测试就暴露了这个产品的本质。另外提醒某些人,开着OP与不断电跑耐久,纯属欺骗。



随机混合读/写部分在小数据块方面输的还不多,数据块大了后建兴T9 256GB又惨不忍睹了,难怪只配卖这个价了。到底哪里出了问题?为何ASSSD或者Crystal Disk Mark跑不出这种情况?答案是:固件参数乱改造成负优化的结果,OP不足导致主控内部数据传输出了问题(拥堵)。简单的纯读/写请求并不能检验出埋得比较深的坑,但是混合读/写测试就不同了,能充分暴露一个SSD的真实水平。这就是我做这个测试的根本原因,避免被简单浮夸的评测误导自己。


2.2、SSD民用条件下的重载工作状况

虽然轻载就需要测试24小时左右,但重载的测试,比轻载要还要复杂。因为SSD内部现有数据的排放位置会牵涉到新写入数据存放到哪里的问题,会对性能测试产生干扰,所以每款SSD其实只有2个状态下的性能表现是固定不变的。一个是新盘表现(Secure Erase后至全盘空间没有填满数据之前),另一个是稳定态表现(各种数据请求压力下的最差值),严格上说,把不同的SSD产品在这两个状态之间的性能表现拿来直接对比有失公平。所以,测试的目标就是一个:把SSD跑到稳定态比较性能。

这里所说的重载工作依然是单机情况,非服务器应用,但会确保每项测试结果都为当前SSD的民用条件下的稳定态。等测试的SSD产品数据多了之后,就可以拿这个稳定态性能在不同产品之间进行对比和打分,预期效果如下:



目前,我们准备对曾经测试过的SSD都再重新跑一遍轻载与重载,然后出一个汇总的排比表格,类似下图。以后每测一个SSD,也都会加进去,这样方便用户很直观的知道SSD的真实水平,快速找到自己心仪的产品。




2.3、服务器压力环境下的使用状况



我会使用SNIA设计的固态硬盘性能测试标准规范(PTS)中的企业级部分做测试,具体的测试会在Linux下用FIO程序进行。SNIA测试标准要做的就是得出这个SSD在最恶情况下的性能表现,也就是告诉你这块SSD不会有比这更烂的性能表现了。虽然我认为这个标准有点为测试而测试的商业目的,脱离了实际情况,因为产品使用中不太可能达到这个最恶值,但依然具有参考意义,例如可以把某些问题看的更明显,这里拿上面发现问题的建兴T9 256GB举例:



上面是SNIA测试中的延迟测试部分(QD1)下的4块测试盘平均延迟,可以看到建兴T9 256GB在纯读取或者纯写入表现上并不差,但是一旦混合读/写后,延迟相比另外3块盘高了20多倍,这是什么概念?这相当于,大家玩网络游戏的时候别人都是ping 10,但有一个人ping 250……怪不得上面的民用轻载混合测试里表现那么难看。其余的数据目前还在更新中。

当然,可能山寨建兴的人又要召集几个小白学生到处说:我为了黑他们特意写个测试软件。但其实我是要感谢这个山寨建兴团队的,正是他们出了这种奇葩产品,促使这个测试软件可以在研发阶段就能接触到各种情况,加速了研发进度,以后再遇到各种作弊的产品也可以游刃有余的面对,这里只是当做一个案例来分析,我相信以后还会遇到更多这样的产品。

2.4、应用测试和记录回放类的结合使用
PCEVA Storage Test系列的Trace Benchmark测试的设计(目前这部分测试还在进行阶段,我正在收集典型应用环境样本中):
最终目的是通过收集特定用户群体的应用(例如高端游戏,设计软件,科学计算软件等)I/O记录定义一个标准,然后进行回放,相比PCMARK 8较单一的固定回放测试(即使是扩展测试也只是在循环回放相同的数据记录),自由度和合理性相信会大大增强。

3、总结
综上所述,只有测试SSD的混合读写性能,才能检验产品的真正水平。但遗憾的是,平常我们所用的测试软件,都没有这方面的考虑。所以说,不管用多少已有的软件进行快餐测试,就算再搞加权评分,但其实都没搞明白SSD的原理与特性,最后不过是被已对测试软件优化的产品欺骗罢了。实际上,混合读写测试在很多大企业内部有做,比如微软、百度、阿里这样的公司,他们在采购前都要用自己编写的测试方案亲自测试。我在了解到这个情况后,也决心写出来这样的软件,让PCEVA上的玩家都能玩个明白。基本思路再总结如下:

1、轻载测试部分,加入混合读写,这是目前其他已有测试软件都没有功能。目的是检验真实的民用性能水准和官标性能水分。
2、重载测试部分,直接写到稳定态,可以测试SSD垃圾回收效率。目的是反映民用最恶性能指标和做横评。
3、企业级测试部分,可以测试SSD的耐压程度。目的是得出企业级最恶性能指标和分析固件算法上的缺陷。
4、回放类测试,针对具体应用来检验产品的在此类应用上的适用度。

测试方案已完成的部分,会用到我们已有的SSD,都进行一番测试,大概2-3天测完一个盘,每测完一个就公布数据,并加入整体排名里。这个测试软件后续还要继续不停的升级更新,请大家保持关注。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

评分

参与人数 3绝对值 +3 收起 理由
banny + 1 我很赞同
Metasploit + 1 很给力!
batzxcboy + 1 很给力!

查看全部评分

石头 发表于 2016-8-15 21:36 | 显示全部楼层
以后我出门要顶个钢盔了……

我补充一下,明天先测浦科特M8Pe
究极装备 发表于 2016-8-15 21:39 | 显示全部楼层
哇哦~沙发没了~板凳何在? 持续关注 看看谁是真正的王者 谁是良心企业 哈哈~
zerozhong 发表于 2016-8-15 21:40 | 显示全部楼层
好长。。。。PCEVA自己的评测标准么?留名顶完了继续看
中华田园犬 发表于 2016-8-15 21:47 | 显示全部楼层
选产品并不是快餐化的看几个跑分数值,而是选择在更贴近自己使用状态下更好的产品。
支持测评,等着大作
忘世 发表于 2016-8-15 21:47 | 显示全部楼层
有这个排名,选择起来更容易了。
来自苹果客户端来自苹果客户端
NOIP117 发表于 2016-8-15 21:49 | 显示全部楼层
哈哈,不错啊
Phil_Libra 发表于 2016-8-15 21:51 | 显示全部楼层
建兴的事,突然想到之前我上建兴中国网站发现网站被黑了(只是header被改),就发了邮件提醒他们,结果过了几个月一切照旧...又过了大半年再上才恢复正常。
zsbstephen 发表于 2016-8-15 21:53 | 显示全部楼层
就冲着浴室招牌就上浮进来了~

SSD妖孽现形记~
Cogae 发表于 2016-8-15 22:01 | 显示全部楼层
这个分类测试还是非常必要的
来自苹果客户端来自苹果客户端
yhhekeda 发表于 2016-8-15 22:03 | 显示全部楼层
浴室辛苦了,研发出来这么牛的测试,一定要支持,等测试软件放出来也好测测自己的盘是什么水准,嘿嘿
lilizan 发表于 2016-8-15 22:09 | 显示全部楼层
受教了,厉害厉害
马克吐槽 发表于 2016-8-15 22:18 | 显示全部楼层
警告警告,eva已经抛出二向箔,降维打击开始

太开心了,这下再也不用跟那些纠结跑分的小白废话了。躺床上刷微信,看到连接件爬起来抢首页回帖啊顺便问下,水果的app啥时出……
nighttob 发表于 2016-8-15 22:22 | 显示全部楼层
其实这就是以前说过的,一些优化的当的TLC SSD使用体验不输只为跑分的MLC SSD

如此一来SSD性能参考指标也进化到第五代了
(持续读写-多线程随机-单线程随机-稳定态离散-混合读写)
20081010aaa 发表于 2016-8-15 22:31 | 显示全部楼层
学习了,希望能纠正自己“跑分强迫症”
Suser 发表于 2016-8-15 22:32 | 显示全部楼层
太特么有意义了,后续强势关注
来自苹果客户端来自苹果客户端
林威 发表于 2016-8-15 22:35 | 显示全部楼层
测一个盘要2~3天。。看样子半夜断电的学校是干不了这事情了。
(本来还想工具出了顺手跑跑手上的深圳货~
石头 发表于 2016-8-15 22:38 | 显示全部楼层
林威 发表于 2016-8-15 22:35
测一个盘要2~3天。。看样子半夜断电的学校是干不了这事情了。
(本来还想工具出了顺手跑跑手上的深圳货~ ...

可以发到评测室给我们测
tangti02 发表于 2016-8-15 22:40 | 显示全部楼层
这个的确要支持了~~~
林威 发表于 2016-8-15 22:46 | 显示全部楼层
石头 发表于 2016-8-15 22:38
可以发到评测室给我们测

真是个好主意~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部