PCEVA,PC绝对领域,探寻真正的电脑知识
打印 上一主题 下一主题
开启左侧

[测试] 浴室谈SSD系列八:True Speed

  [复制链接]
跳转到指定楼层
1#
点击数:70399|回复数:82
前言

随着浦科特M3和M3P的推出,浦科特SSD产品已经成功超越镁光m4成为SSD新的性能王者。在同样超群、撑爆SATA3.0接口带宽的的持续读取速度以外,浦科特同时拥有更快的持续写入速度。
SSD买回来再用一段时间后会有性能下降的问题,就如同汽车发动机积碳,性能下降。(参考:http://bbs.pceva.com.cn/thread-10231-1-4.html
而浦科特特有的TrueSpeed技术宣称可以在使用中长久保持SSD性能不降低,吸引了广大玩家的注意,究竟什么是TrueSpeed?其实现原理又是什么呢?






Tips:在进入下一部分前,了解回顾一些相关知识,可以帮助您更好的理解下面的内容,可以参考:
什么是垃圾回收(Garbage collection,GC)?
什么是OP空间(Over-provisioning)?
http://www.pceva.com.cn/article-40-4.html

过去的写入数据结构会影响SSD的性能,固态硬盘的出厂态、GC态、稳定态:
http://www.pceva.com.cn/article-87-1.html

SSD写入、覆盖和GC:




TrueSpeed的两层含义

True Speed包含了2层含义,第一层是对比市场上第二热门的Sandforce主控方案而言。

随机存取方面:在同Sandforce产品的图标对比中我们可以看到,Sandforce在针对全0和全1这种可完全压缩数据模型的情况下可取得理想的成绩,但在实际的随机写入情况下,则完败于浦科特产品。而随机存取更接近用户实际使用环境,更符合用户的使用需求。浦科特产品表示出的效能是产品实际应用中能够体验到的实实在在效能。
满盘写入性能方面:这部分SandForce系列主控由于没有大容量外置缓存,内部算法需要进行2次映射,所以当盘被填满后,必然性能损失不少。


True Speed的第二层含义是指浦科特的长期使用不跌速算法,也是本文的讨论重点:

浦科特官网上对于True Speed实境效能的介绍:






实测True Speed不掉速

在上一部分浦科特给出的对比中,可看到这个不跌速的算法确实很强大,那么到底如何做到的呢?有没有他的缺点呢?

带着这个疑问对手上的128GB和256GB M3P动起了邪念,决定要找出True Speed第二部分的秘密。

暴力测试即将开始,耐久度纠结党退后~~~

测试方法:先用iometer生成一个测试文件,填满整块盘的容量,只留出2GB的空间跑AS SSD Benchmark用。



128G型号,只勾选AS SSD Benchmark的持续测试部分,连续跑7次(一次结束后不休息立马跑第二次),在第6次的时候出现了下图中写入速度跌到261MB/s的情况。然后休息10秒再跑第7次,速度回到330MB/s。



256GB我也做相同的操作,连续跑ASSSD持续读写测试不休息,结果也是到了某一次的时候写入会忽然下降,但是只要休息几秒速度就会回来:

这显然是垃圾回收非常激进的表现。


对True Speed的猜测与验证

为了验证,我对256GB的M3P跑了3次各24小时的非常变态的iometer稳定态测试。

测试方法:按照SNIA的企业级SSD测试标准,对SSD进行2小时的128KB全盘LBA范围写入,然后进行8X7种读写混合随机数据的测试,每种1分钟,测25轮也就是1400分钟。这将使SSD进入稳定态。

实验一:

第一次24小时测试跑完后,我就使用HDtune 5.0开默认写入测试这块盘的波形:



惨不忍睹了吧~一开始最高处301MB/s附近,之后在8~9GB附近速度跌到可怜的5MB/s附近直到结束。

我们来分析下这张速度图中反映出的SSD各位置的情况:



我来解释下:8~9GB的区域应该是这块SSD的默认OP空间。如何计算? 256GB X 7.37% ~ =18GB附近,其中一半容量用来放FW,FTL等组件的备份,另外一半容量用来做OP和备用块。

休息2分钟后跑第二次测试:







再休息2分钟,进行第三次测试:







分析:第二次的200MB/s以上的速度范围在17GB附近,第三次为26GB附近。(图中哪部分高出来不重要,因为实际逻辑地址和物理地址关联是不同的)

结论1:在这个算法中,每一次全盘范围LBA写入(Hdtune写入测试)会造成OP容量范围的地址速度恢复。(这个范围主控知道数据无效,被很激进的垃圾回收掉)


实验二:

为了验证上面这个结论,我对这块256GB进行了次Secure Erase返回出厂性能并人为的增加了第二层OP。(HPA限制访问范围)
Secure Erase后进入Linux下使用hdparm程序设置HPA范围到200GB容量。








然后老样子我进行了残忍的Iometer压力测试24小时,之后再进行HDtune的写入测试:





这次24小时压力折磨后,由于多出来28%容量的OP,盘其实还没到很稳定的“稳定态”,不过从图里很明显看出有OP的区域在56~57GB范围附近(后面还有点小高点没有稳定,不然前面可以到60GB以上),证明了OP容量内的数据都被垃圾回收了。






休息2分钟后进行第二次测试,130GB不到的容量被垃圾回收(接近2个OP范围):





再休息2分钟后进行第三次测试,接近190GB范围被垃圾回收:



再休息2分钟,跑第4次的时候自然是性能完全恢复了:

由此上的实验得出结论2:在这个算法中,OP容量直接关系到是否会被跌速,OP越大越不容易跌速,恢复的也更快。

为了确保这次测试的结论的准确,我又进行了第三次的24小时Iometer压力测试和HDtune写。(各位看官看的心疼了么~~~)


实验三:

这次我特地在每次写入后休息3小时,确保主控有足够的时间把该做的垃圾回收都做完,







得到了完全一样的结果。

结论3:增加了那么多OP后,24小时的Iometer测试达不到绝对”稳定态“;全盘写一次LBA就恢复一次OP范围


总结:
    SSD由于有自己独特的物理特性,成绩分成三态,出厂态,GC态和稳定态。SSD出厂态下效能最好,随着使用将逐渐进入稳定态,就如新车开的时间长了发动机渐渐发生积碳。而垃圾回收就像是汽车用低档高转速的方法来让发动机自动清除积碳,减少性能下降幅度,但正如“清除积碳”的过程中,也会对发动机造成一定磨损,“垃圾回收”也会对SSD的颗粒造成一定磨损。(垃圾回收的原理可参考:http://bbs.pceva.com.cn/thread-12095-1-1.html
所谓True Speed技术,其实就是一种很激进的闲置垃圾回收做法,主控是在随时监测盘的”空闲“状态,只要发觉有机可乘,则见缝插针,立马去做垃圾回收来达到最大化性能的目的,而垃圾回收的速度非常快,效率则取决于OP容量的大小。这种做法其实美光的m4也有在做,不过m4的反应没有那么激进,一般做到一定范围后就停止了,而True Speed会把能够优化的部分都尽可能做完。正是True Speed积极的垃圾回收,保证了浦科特SSD能够在使用过程中始终保持较好的效能。

    闲置垃圾回收并非多多益善,如果刚垃圾回收过的数据很快又被用户删除,则这部分数据的垃圾回收就白忙活了,同时还浪费了一定的颗粒耐久度。
True Speed可以保证在家庭应用和RAID应用下取得”不跌速“的表现,因为家庭用户在正常使用周期中不可能写入非常多的数据量,因此用少量的颗粒耐久度换取更强体验的做法是比较划算的。而从文中之前ASSD测试持续写入的时候,由于特意不给SSD休息,连续跑写入,主控没法提前做闲置垃圾回收,直到最后由于没有空闲空间来交换数据而不得不做“主动垃圾回收”的表现来看,True Speed不是很适合在持续高压力的服务器领域工作。

评分

参与人数 1活跃度 +5 收起 理由
泯灭之心 + 5 赞一个!

查看全部评分

2#
neeyuese  楼主| 发表于 2012-4-3 21:15 | 显示全部楼层
表面坏块扫描的功能?那个你知道扫的是SSD哪里么?速度快可能根本没扫进颗粒,速度慢则可能扫到颗粒碎片处了,和实际使用根本没有比较性。
3#
neeyuese  楼主| 发表于 2012-4-4 21:27 | 显示全部楼层
中小型企业的WEB服务器或者数据库持续的强度能有多高?
这个我建议使用SF2581搭配MLC的产品。

m4和m3系列对这类应用不适合,所谓滴水穿石,只要服务器不休息,性能就无法在闲置时间恢复,而不在于写入的速度和强度是多少。
4#
neeyuese  楼主| 发表于 2012-4-5 10:38 | 显示全部楼层
这个测试不涉及任何Trim的部分,因为我根本没分区,也没文件系统。

True Speed和垃圾回收速度有关和Trim没很大关系。

你Hdtune写入的时候是64KB持续写入,自然把稳定态(随机碎片)给破坏了,当然是部分测试,如果是全面测试,写一遍速度就都回来了,废话你用持续文件填充全盘碎片,就等于全盘碎片整理了。
5#
neeyuese  楼主| 发表于 2012-4-5 16:56 | 显示全部楼层
QD32 随机写入 4KB 2300 IOPS
6#
neeyuese  楼主| 发表于 2012-4-7 06:54 | 显示全部楼层
xihuanttt 发表于 2012-4-7 02:12
嗯,看起来如果是个人计算机应用,各大品牌寿命已经可以最后考虑,在实际中,持续写入还是不及4K写入 体 ...

不是很认同,C300的4KB虽高,实际延迟却也很大,体验上来说原厂固件根本还没m4好,不管是速度还是性能恢复,都已经是昨日黄花了。

4KB要提升,除非你换存储介质,基本不太可能,而持续要提高,只需要加强算法,主控能力和颗粒容量,相对来说更现实点。
7#
neeyuese  楼主| 发表于 2012-4-16 14:47 | 显示全部楼层
这些算持续写入,不过这些并不会影响True Speed的速度,因为你总有休息的时候。
8#
neeyuese  楼主| 发表于 2012-4-19 12:04 | 显示全部楼层
justinhtz 发表于 2012-4-19 13:43
浦科特写入速度快的代价是功耗增大,power consumption (active) 是 5w,  而Crucial M4功耗为0.15w. 功耗差 ...


没有5w那么夸张吧,请引用下你的证据,M4闲置的时候还更耗电呢。



9#
neeyuese  楼主| 发表于 2012-4-19 14:17 | 显示全部楼层
看了下明显m4自己标错了,你何必夸大33倍,误导很多不懂的人。

浦科特写入快,所以持续写入的时候颗粒耗电。
m4的颗粒ONFI相比更耗电,所以待机时候耗电。
10#
neeyuese  楼主| 发表于 2012-7-14 21:35 | 显示全部楼层
Trim运行的时候必须停止所有指令,当然也包括读写,这也是为何很多人快速格式化一块SSD会感觉这块盘卡住一样。
不考虑寿命的话,激进垃圾回收自然是使得性能最大化了。
不过激进垃圾回收很可能你刚垃圾回收的地方其实是可以直接删除的,那么就是一种资源的浪费,如果这种浪费多了,其实性能是不是最大化我不清楚,耐久度肯定很惨就是了。
11#
neeyuese  楼主| 发表于 2012-7-14 21:54 | 显示全部楼层
Trim一旦发送,会停止这块盘上所有的IO。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部