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

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

  [复制链接]
跳转到指定楼层
#
点击数:70452|回复数: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 赞一个!

查看全部评分

82#
olmlt 发表于 2013-7-15 01:12 | 只看该作者
啥玩意好呢
81#
ericcheung 发表于 2013-5-30 10:41 | 只看该作者
弱弱的问下楼主用的系统以及版本?
是红帽Linux么?
80#
wjqok 发表于 2013-5-8 22:52 | 只看该作者
neeyuese 发表于 2012-7-14 21:35
Trim运行的时候必须停止所有指令,当然也包括读写,这也是为何很多人快速格式化一块SSD会感觉这块盘卡住一 ...


这样看起来应该关闭True Speed更好了,只需要根据使用情况15-3个月开启24小时让它工作一下就好,或者说ssd软件设置自动重复:关闭True Speed 功能470-970个小时,开启运行30个小时,然后再关闭470-970个小时....重复
这样就比较完美了。嘿嘿!
79#
stgmsa 发表于 2013-4-1 04:24 | 只看该作者
本帖最后由 stgmsa 于 2013-4-2 00:39 编辑

所有的 SSD都能够 hdparm -N ?
还是会有什么危险?
那个 --i-know-what-i-am-doing 。。。好像很崩溃的样子
另外原始可访问地址需要提前记录么 ?
@neeyuese
78#
zzhdzjhdpceva 发表于 2013-3-16 02:58 | 只看该作者
很好很强大。。。。。。
77#
compal_zero 发表于 2013-1-21 14:11 | 只看该作者
感谢楼主分享,学习了,好霸气的测试。。
我们都坐井观天了,惭愧啊。。。。
76#
hunau316 发表于 2013-1-15 14:08 | 只看该作者
读此神贴
顿时茅塞顿开~~~
75#
kingbill 发表于 2012-8-25 10:06 | 只看该作者
真的是太强了
74#
GrooBiG 发表于 2012-8-20 23:17 | 只看该作者
头看晕了。。看了那么多跑分贴。评测贴。推荐贴。。。。不知道入手哪个好。。哪位大大推荐下入门级的SSD哪款比较适合小白折腾?
73#
neeyuese  楼主| 发表于 2012-7-14 21:54 | 只看该作者
Trim一旦发送,会停止这块盘上所有的IO。。。
72#
chmsta 发表于 2012-7-14 21:50 | 只看该作者
不知道这样更解对不对: 对于要求不间断写的服务器盘来说,TRIM一旦开始工作,就意味着服务器写盘失去响应? 那么SSD内存缓存不是为了给TRIM争取时间而存在的么,如果缓存放的下写数据? 总之想表达的是trim即使会使SSD停止工作,但是还有缓存可以撑一会?
71#
neeyuese  楼主| 发表于 2012-7-14 21:35 | 只看该作者
Trim运行的时候必须停止所有指令,当然也包括读写,这也是为何很多人快速格式化一块SSD会感觉这块盘卡住一样。
不考虑寿命的话,激进垃圾回收自然是使得性能最大化了。
不过激进垃圾回收很可能你刚垃圾回收的地方其实是可以直接删除的,那么就是一种资源的浪费,如果这种浪费多了,其实性能是不是最大化我不清楚,耐久度肯定很惨就是了。
70#
chmsta 发表于 2012-7-14 21:28 | 只看该作者
本帖最后由 chmsta 于 2012-7-14 21:29 编辑
neeyuese 发表于 2012-4-4 21:27
中小型企业的WEB服务器或者数据库持续的强度能有多高?
这个我建议使用SF2581搭配MLC的产品。

m4和m3系列对这类应用不适合,所谓滴水穿石,只要服务器不休息,性能就无法在闲置时间恢复,而不在于写入的速度和强度是多少


这里想请教下楼主,TRIM难道要在SSD不工作时才能进行么,对于要求写性能高的服务器来说,在不考虑SSD数据稳定性和寿命的情况下,难道不是激进的垃圾回收更合理么(保障了性能?)
69#
kkwong7878 发表于 2012-7-12 01:36 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
68#
nerneq 发表于 2012-7-7 00:12 | 只看该作者
虽然不是很明白 但是还是来支持下浴室大大 测试依旧那么暴力 那么变态 那么恐怖 但是 我喜欢。。。。
67#
whxcjyrc 发表于 2012-6-29 17:23 | 只看该作者
过程看不懂,先学习
66#
cits118 发表于 2012-6-6 23:12 | 只看该作者
已有M4,在考虑是否再进一块M3P
65#
3dhfx 发表于 2012-5-18 09:04 | 只看该作者
学习了,动心了。
64#
banny 发表于 2012-5-18 05:46 | 只看该作者
想了解一下M4的垃圾回收跟M3P相比,保守在什么地方?是不是间隔时间?还是回收率?
63#
icesof 发表于 2012-5-16 17:55 | 只看该作者
还是要看一下评测的,以后才能知道怎么选择
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部