SSD 性能回顾[SSD 使用时间对性能的影响]

原文:SSD Performance Review – 270TB Written,做了少量增添、修改,均以中括号[****]包括了。SSD 基础参考这里

一、测试环境

我们知道SSD 在寿命内的速度很快,但SSD 在写的时候会磨损,磨损的速度取决于NAND[如制程]、写入SSD 的数据类型和量等等[SSD 中最小存储单元cell 实际上只有擦除寿命,却可以无限读,甚至是超过了寿命。因为写的时候需要擦除,擦除寿命也就近似于写寿命]。因为担心SSD 的寿命以及旧SSD 的性能,使得很多人不敢使用SSD 。要让我们消费者了解、掌握自己SSD 的耐久度是很困难的,因为我们中的大部分并不知道一天中我们写了多少数据。所以用来计算SSD 寿命的编程/擦除循环对于我们来说有点geek 了。为了帮助SSD 消费者和当前使用者更好了解SSD 的寿命与耐久度,我们拿了一个进行270TB 连续写的爱国者野火(Patriot Wildfire)SSD 测试[和一个全新的SSD 进行对比测试]。检查SSD 随着时间性能的变化。SSD 中使用了LSI 的Sandfore SF-2200-powered 芯片,上面被写了270TB 的SSD 只有寿命的21%。

Toshina-MLC-Toggle-NAND

当要分析flash 存储介质性能,必须意识到随着NAND 的磨损,SSD [性能]也发生了变化。当我们谈到性能变化时,不考虑垃圾回收,TRIM,甚至是稳态[连续读写偏差小的状态],而只是围绕着当接近编程/擦除(P/E 循环)限制时flash 性能的下降。对于实验中的32nm Toshiba MLC Toggle NAND Flash 芯片擦除周期约在5000 P/E。

Patriot-Wildfire-SSD-Endurance

为了展示SSD 的这些变化,我们使用了120GB 的爱国者野火SSD,并通过写入270TB 的不可压缩数据[文件系统或者SSD 可能对冗余数据进行压缩从而减少了真正的写入数据量,比如主控的数据压缩可能使得写放大小于1]将SSD 寿命下降到剩余的21%[这个寿命也是根据容量擦除次数来估算的,不要单纯0.12TB*5000*0.79 来计算,还应该考虑到写入放大]。同时测试中安全擦除处于“即用”状态。固件也从319A 更新到了最新版本332A,以避免蓝屏的Bug,但这并没给SSD 带来性能上的提升。

 

二、综合评测

测试刚开始爱国者野火SSD 达到了最高 555MB/s 读和 520MB/s 写速度的,这正好是SATA III 接口速度的上限。为了看到在写密集期后性能如何被拉平,我们使用IOMeter 2MB 的连续读/写测量该SSD 的直线性能。这些测试都只有几分钟长,得到的是持续的突发速度,并不能到达稳态。

patriot_wildfire_120gb_270tb_comparison_2mb_sequentialtransfer_4k

大块数据读/写性能基本保持不变。虽然可压缩数据2MB 读峰值速度下降了5MB/S ,但不可压缩数据的写速度却得到了9MB/S 的上升。[对应上图中1与2的读速度和3与4的写速度,可压缩数据Repeating ,不可压缩Random,1、4为瞬时速度,2、3为270TB 数据传输速度]

对于随机传输,还是2MB 大小,只是负载由顺序变为随机。

patriot_wildfire_120gb_270tb_comparison_2mb_randomtransfer_4k

这部分不可压缩数据大体保持相同,同时不可压缩数据磨损爱国者野火SSD 使得写速度有5MB/S 的下降。

下面是使用IOMeter 进行4KB 小块传输性能。

 

patriot_wildfire_120gb_270tb_comparison_4k_randomtransfer_mb_4k

 

patriot_wildfire_120gb_270tb_comparison_4k_randomtransfer_iops_4k

比较上面两幅图,无论是压缩数据还是非压缩数据,270TB 写速度在所有情况下都是最快的。压缩数据在磨损SSD 上获得6.4% 的提升,对于不可压缩的数据却只有0.7%。[我们一直强调SSD 的顺序写、顺序读、随机读性能是很好的,而随机写(因为涉及到擦除)性能较差,为什么这里随机读性能却这么差呢?我个人理解这里随机小读小写和主控有较大关系,单线程进行小读小写测试并不能完全说明问题。这好比在旋转寿司餐厅,为了测试寿司师傅做寿司的速度,让一个每次只能吃一个寿司的瘦子坐在餐厅上吃,寿司师傅非急死不可!可是让几十个瘦子坐在那里吃寿司,或者叫上一次能吃n 多个寿司的胖子(数据块变大)来吃,才能测出寿司师傅做寿司的速度,下面多线程速度的提升也说明了这点]

仍旧是4KB 随机传输测试,我们查看不断增长的负载性能。模拟了一个多线程的工作环境,线程数由1 到64。

patriot_wildfire_120gb_270tb_comparison_4k_aligned_read

磨损的爱国者野火SSD 保持着对新SSD 各方面性能的领先,峰值IOPS 55,000 对应44,000 IOPS。

patriot_wildfire_120gb_270tb_comparison_4k_aligned_write

有意思的是4KB 随机写速度的变化,这可能来源于最新更新的稳定固件,或者是NAND Flash 的原因。随着4KB 写负载线程的增多,非压缩和压缩数据性能的全面提升更加稳定。

下一个测试针对一个深度队列中SSD 延时。这个测试中我们不仅关心平均响应延时,并且得到随着SSD 进一步磨损峰值延时的变化。随着4KB 写性能的提升,平均响应延时下降了:对于重复数据响应时间从新SSD 的0.0510ms 下降到磨损SSD 的0.0478ms,对于随机数据响应延时从新SSD 的0.0503ms 下降到磨损SSD 的0.0499ms。峰值响应延时从45.20 ms 下降到最后寿命的36.58ms。[很神奇吧,快挂了的SSD 居然跑的更快了]

patriot_wildfire_120gb_270tb_comparison_4k_writelatency_4k

使用CrystalDiskMark 和不可压缩的数据测试新的SSD 和磨损的SSD。CrystalDiskMark 连续写和512KB 随机写速度从新的253MB/S 下降到磨损的183MB/S。即便有这样的下降,磨损的SSD 模型仍旧有更高的4KB 写速度。

patriot_wildfire_120gb_270tb_comparison_crystaldiskmark_500mbtest_fast

我们最后一组评测一组读写混合、高度队列的、服务器配置文件的负载。这些测试从深度为1 的一个队列到深度为128 的一个队列。这样最大的不同是使用恒定的混合读写负载,写了270TB 的爱国者野火SSD 性能终于开始下降了,尤其是不可压缩的数据。在我们数据库和工作站配置文件的负载中,性能在队列深度为8 的时候显著下降。文件服务器和只读Web 服务器数据配置负载下性能几乎相同,在队列深度为64 时速度有些偏移。

patriot_wildfire_120gb_270tb_comparison_iops_database_4k

 

patriot_wildfire_120gb_270tb_comparison_iops_fileserver_4k

 

patriot_wildfire_120gb_270tb_comparison_iops_webserver_4k

 

patriot_wildfire_120gb_270tb_comparison_iops_workstation_4k

 

三、现实中的测评

第一个实景场景就是HTPC(Home Theater Personal Computer)。测试中包含:使用Media Player Classic 播放一个720P HD 电影,VLC 播放器播放480P SD 电影,并从iTunes 中同时下载三部电影,还通过Windows Media Center 刻录一个15 分钟的1080i HDTV 流媒体。这样就要求了更高的IOps 和MB/S 速率与更低的响应延时。在这个trace 中我们记录下写入了2,986MB 数据并读取了1,924MB 数据。

patriot_wildfire_120gb_270tb_comparison_storagemark2010_htpc

HTPC trace 的性能基本保持不变,虽然平均响应延时从新的0.86ms 下降到磨损SSD 的 0.83ms。

我们第二个实景测试涉及到生产环节中磁盘的活动。这次测试的目的在于展示SSD 大多数人在通常的日常活动中SSD 的性能。这个测试包括:三小时的装有office 生产环境的32位VISTA 系统操作,并运行着Outlook 2007 连接交换服务器,使用Chrome 和IE8 进行web 浏览,使用Office 2007 编辑文件,Adobe Reader 查看PDF,和一个小时本地音乐的重放和两小时通过Pandora 额外地在线播放。在这个trace 中我们记录了4,830MB 数据的写入和2,758MB 数据的读取。

patriot_wildfire_120gb_270tb_comparison_storagemark2010_productivity

磨损的爱国者野火SSD 总体传输速度比新SSD 高出7MB/S,响应延时也从0.82ms 下降到0.79ms。

我们第三个实景测试是在游戏环境中。不同于HTPC 和生产环境的trace,这个更依赖于SSD 的读性能。进行一个简单的读写百分比分类,HTPC 测试是64% 的写,36% 的读,生产环境测试时59% 的写和41% 的读,然而游戏的trace 却是6% 的写和94% 的读。测试包括了一次64 位Windows 7 Ultimate 系统一次Stream[Stream 是CS 公司游戏下载更新P2P 平台] 预配置,下载并安装了侠盗猎车手4、求生之路2、质量效应2。trace 捕捉了每个游戏从载入到开始大量的读操作,在游戏运行的时候读操作也像纹理一样交织其中。在这个trace 中,我们记录了426 MB的写和7,235MB 的读。

patriot_wildfire_120gb_270tb_comparison_storagemark2010_gaming

和生产环境中测试结果类似,磨损的SSD 在游戏环境中速度和响应时间性能要优于新SSD。

 

四、能量消耗

我们可以看到上面性能上的变化,测得读写等情况下的能量消耗也很重要。对于磨损的SSD ,写操作对于可压缩数据或不可压缩数据能量消耗的都要少。连续读能量消耗显著下降,从新SSD 的3.51 瓦特到磨损的1.84 瓦特。在其他情况下磨损SSD 则消耗更多能量,尤其是在Startup 操作中。

patriot_wildfire_120gb_270tb_comparison_power_values

 

五、总结

上面我们比较了全新的120GB 爱国者SSD 和快要寿终正寝的SSD 性能,结果非常与众不同。尽管这只是单一一个SSD 的例子,但这些结果至少给哪些准备购入主流SSD 的消费者某种程度上的安慰。写入270 TB 数据后的SSD 仅剩下20% 的寿命,性能在某些方面可能有所减弱,但哪怕是SSD 运行的最后一天,速度仍旧和新的一样快。我们还了解到对于某些使用配置,即可能影响企业用户的负载,不可压缩的数据在高队列深度下[多线程]性能会下降。在eMLC NAND SSD 下,这写情况不太可能出现,除非有更多数据写入。[最后一句话根据自己理解译]

如果我们假设这个野火SSD 寿命为五年,那么意味着即使剩余20%寿命的SSD 报废,那么270TB 的写相当于五年每天写150GB 的数据,甚至超过了SSD 120GB 的容量。即使再暴力的用户也不会这样折腾自己的SSD 吧!如果你真的准备这样做,只能告诉你,你的SSD 寿命可能小于五年。当然,内部SSD 的NAND Flash 也会对寿命有影响,以 32nm MLC Toggle NAND 为例,寿命在5,000P/E 循环周期,而2xnm 的就只有3,000 P/E 循环周期了。[有了这样的循环周期就很好算寿命了,任意大小的SSD 如果每天写入数据和该SSD 大小相同,寿命就约等于这个循环周期数,容量大SSD 寿命长久不难理解了]

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据