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

对OCZ Vector 180卡顿问题的个人分析

[复制链接]
跳转到指定楼层
1#
nighttob 发表于 2015-12-26 15:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
点击数:24462|回复数:94
本帖最后由 nighttob 于 2015-12-27 18:33 编辑

近段时间,OCZ Vector 180的莫名卡顿及TRIM后严重卡顿的问题在论坛上引起了广泛的关注,这里仅就我个人掌握的信息加以分析。

莫名卡顿的问题首先在 http://bbs.pceva.com.cn/thread-125345-1-1.html 这个帖子里面被爆出,继而在回帖里面引出大量删除后严重卡顿的问题。

莫名卡顿的成因相对明确,即Vector 180这块盘的固件策略,具体来说就是释放缓存所致。在浴室对Vector 180的评测中就指出过:

OCZ Vector 150和Vertex 460系列的离散表现都不是很理想,直到ARC100时候,由于固件限速,造成离散表现有了明显提高。而本次新旗舰Vector 180系列,加了掉电保护电容后,缓存释放的时机出现了较大改变,离散表现的总趋势清晰可见,但是有很多因为缓存释放造成的0 IOPS现象。因此这款SSD也仅限于适合发烧,电竞类用户使用,放在有写入要求的服务器上玩就算了。

但在实践中,在绝大多数台式机平台上,这一缺点都没有明显体现。也使得这一问题显然并未得到重视,包括我在内。而笔记本用户更多会考虑到兼容问题,比如 http://bbs.pceva.com.cn/thread-120132-1-1.html 这个帖子提到的冷启动不认盘问题。但不论是缓存释放导致的卡顿还是冷启动不认盘,这都是Vector 180的掉电保护(也就是OCZ称作的PFM+功能)所致。

很多人不解的是,像ARC 100这种不带电容的低端产品为何就没有上面的问题。那是因为软硬件是相互配合的,在不具备掉电保护电容的情况下,固件策略会完全不同。

同样是防变砖级别的掉电保护,没有电容加持就需要非常频繁地进行缓存释放,将缓存中映射表等关键数据保存进NAND中,因此SSD的常态性能就要被释放缓存所拖累,造成平均性能低;而有电容加持的情况下,由于已经有了电源保障,缓存释放频率就会大大降低,可以“攒”够一定数量再写入进NAND里,但由于一次性释放的量很多,造成要消耗更多时间和资源,也就出现了0 iops。而且这种0 iops并不是在盘进入稳定态以后才出现的,仔细看浴室的测试图的话,在最开始的位置就有了0 iops,这也就说明这种缓存释放会完全阻止主机请求。

这就像是我们听课做笔记,一种是一边听老师讲一边记笔记,整堂课都不闲着;一种是听完一节或者一段后再记,经过一个整理知识的过程再记录下,但需要较长一段时间不能被打扰。这两种方式有各自的优缺点,前者仅仅是无脑记录,会把有用的和没用的以及重复都信息都记录下来;后者由于需要大量时间整理和记录,如果在没写完之前就开讲下一节的内容,会导致这部分内容被忽略掉。因此很难说这两种方式哪个好哪个不好,这跟各人的学习方式和习惯有关系,也跟听课内容有关系,内外兼容才是好的。对SSD来说也是一样。

在笔记本上面凸显的另外一个原因就是笔记本自身的各种蛋疼限制,包括不限于电源管理和性能限制。笔记本毕竟是一个相对封闭的平台,厂家要做的就是完美兼容自己经过测试的产品,用户自己更换非认证产品则后果自负,这也是为什么会有那么多OEM型号和OEM固件的原因。在这一问题上,很可能就是电源和性能限制导致缓存释放的过程变长,明显影响了使用。而对没有电容保护的SSD来说,则只是平均性能进一步降低,但远不足以出现0 iops的情况。

所以,对因释放缓存导致的卡顿,分析结论就是,这是特定固件策略的缺点在特定使用环境下被放大,影响用户使用体验



接下来是大量删除后严重卡顿的问题

虽然很多人测试后都表示这就是TRIM的锅,但其实并不然。

如果我们回去复习TRIM的原理和功能的话就会知道,TRIM只是主机或者操作系统告知SSD特定LBA范围内的数据已经没用了,并交由SSD处理。也就是说,主机只是发了一条ATA指令,告诉SSD一个已经无效的LBA范围,重点在于SSD如何去处理。

SSD在接收到TRIM指令后,会根据固件策略,对相应的物理地址进行GC(垃圾回收)。也就是说,真正导致卡顿的是TRIM之后的GC操作。

而GC并不是简单地把无用的块页回收掉,同时还要更新缓存中的映射表,是的,这跟上面提到的莫名卡顿的问题又联系上了。

由于Vector 180只是防变砖级别的掉电保护,也只有指甲盖大小的一颗薄膜电容,只够在突发掉电时候把映射表等关键数据写入到NAND颗粒中。所以在执行GC这种非常消耗内部资源的操作的时候,要“小心谨慎”,每完成一点都要及时更新映射表。这也就造成了Vector 180的GC效率低——一方面是映射表更新频繁,一方面是映射表还要定期大量写入到NAND中。而这一缺点在有大量数据同时删除的时候暴露无遗,特别是960GB的型号——它的映射表是最大的,但内部带宽却没有变大。

关于Vector 180的GC方式,我们可以从早先的两个BUG反馈中略知一二:
Thank you for your inquiry in regards to the I/O behavior on the Vector 180 Series. What is being observed is a characteristic of the design of the drive itself and is a result of the firmware performing updates to its metadata mapping table and flushing the entire table out of DRAM and onto the NAND flash, during which I/O throughput is impacted for very brief periods. Our metadata management is done on a frequent basis to prevent failure modes related to bricked drives as a result of metadata corruption, which can potentially happen on other non PFM+ enabled SSDs as a result of unexpected power loss. This is observed to a greater extent on the larger drives (960GB) where there is more metadata to manage. While this phenomenon is observable in synthetic benchmarks, there is virtually no impact to typical client grade end-user applications and during real world use. With the Barefoot 3 based Vector 180 Series design, we strove to deliver the optimal balance of performance and reliability for our valued enthusiast and workstation customers.
Thank you for all your support and patience on this Vector 180 launch and are close to finalizing embargo. At the same time we are providing a beta of the FW that addresses the slow format that has been observed on the larger capacity Vector 180 SSDs. After investigating the issue the root cause for long format times on dirty drives was determined to be with how the BF3 firmware handles TRIM. After executing the TRIM command firmware performs an update to the metadata mapping table. When presented with a large amount of TRIM commands in sequence, such as formatting a dirty drive, firmware would update the metadata after every single TRIM command execution. All of these successive metadata updates can add up and became particularly noticeable as the amount of LBAs to be TRIMed is increased, so it would scale with capacity and how full the drives were. Changes were made in the firmware to detect when a large number of successive TRIM commands are sent to the drive and to no longer perform a metadata update after every single TRIM, but instead after the batch of TRIMs are complete. With the new firmware a clean format of the 960GB takes approximately 40 seconds, and a full format of a completely full drive takes approximately 4 minutes. No other features or bug fixes were added to this release.

注意标黑的部分,英死早不要紧,大概意思就是:每次释放缓存都要更新完整的映射表,每执行完一条TRIM指令都会更新映射表。而一条TRIM指令最多包含32MB的LBA地址范围,试想如果几十几百GB的删除,那么要发多少个TRIM指令,要执行多少次更新映射表操作及释放缓存操作。如此造成长时间卡顿也就不奇怪了,上面引用的部分也提到960GB的型号,完全脏盘执行一次格式化操作需要花费大约4分钟时间。

虽然我们可以希望OCZ在后续的固件升级中可以继续优化,但这也需要平衡用户需求(整天删除几十几百GB的有几个人?)和固件稳健性(我现在保证掉电不变砖就可以了)。综合来看,我认为以Vector 180目前的硬件配置来说,这样的固件策略也是合理的。

有些人认为这不应该是旗舰产品所应暴露出的问题,那么什么是旗舰产品可以出的问题?品质和服务都达到一定高水平的产品就是旗舰产品,这跟产品本身是否有一定缺点没有关系。再加上OCZ执行的5年保修和即将施行的神盾保修政策,都使得Vector 180称得上是旗舰,也具有购买价值。上面所说到Vector 180的问题都是特定固件策略在特定用法和特定环境下表现出来的,而这一缺点在非特定用法和通常环境下就不会有明显体现

一双高档运动鞋可以让你无阻穿行于城市、乡村和荒野,但宴会厅门口的侍者绝对不会让你穿着它进去,这并不是说这双鞋不够高档,只是不适合这个场合。因此,如果你有特定用法和特定环境的要求,就要去选购与之相适应的产品,而不是去横加指责别的产品为何做不到。

对此问题,一个最“傻瓜”的方案就是直接禁用TRIM。已经有人试过禁用TRIM以后再大规模删除,就完全不会出现这种长时间卡顿的情况,但这并不根本上解决问题,待到盘快写满或者再次写入到同一位置的时候,被动GC同样要引发更新映射表的操作,只不过是将时间从删除的那一刻延后到了再次写入的时候(把删除时候集中出现的0 iops分摊到写入时候)。虽然现今主流级别以上的SATA SSD性能都足够高,并不依赖TRIM恢复性能,即使是脏盘的情况下依然有满足日常需求的性能,但TRIM在消费级依然是重要的,因为用户的操作模式是爆发式的,每次爆发的响应越迅速,越能给用户带来优秀的使用体验。

因此,最终的决定权还是在用户手里,如果根本没有大规模删除的操作习惯,那也完全无需在意Vector 180的这个缺点;如果经常需要大进大出,那就要考虑是等删除还是等写入(虽然是一边GC一边写入,但至少不是失去响应那种卡顿)。



再议PFM+

因为PFM+导致缓存释放策略发生变化,造成了0 iops;因为PFM+的电容不够大,所以每次TRIM后都要更新映射表,额外消耗了资源;因为PFM+的电容需要充电,所以造成开机慢和不认盘问题……

看过上面的分析,相信很多玩家都会把“真正的罪魁祸首”指向PFM+上面。

那么PFM+到底起到了什么作用?仅仅是防变砖,没有设置电容的型号也能做到,为何还要多此一举增加一个电容?

随着SSD容量的不断翻倍,需要的外置缓存容量也在变大,自然而然的,缓存内关乎SSD“生死存亡”的关键信息量也在变大。但NAND颗粒的速度却没有变快,甚至从某方面来说还变慢了。将外置缓存内的关键信息写入到NAND颗粒中的时间在变长,时间长到一定程度就不能简单依靠固件策略确保突发掉电情况下的完整性了,这时候就需要有电容来保障。

这颗电容就是将Vector 180的可靠性由99%提升到99.9%的功臣。

但这颗电容也是Vector 180的的罪人,因为它做的并不完善。

除了上面说的那些问题,更重要的一点就是,这颗指甲盖大的薄膜电容并不足以提供足够的后备电力,将完整的关键信息都写入到NAND颗粒中,只能将有更改的部分写入,这也就是为什么Vector 180依然需要频繁完整更新映射表的原因之一(如果电容容量足够大,那就可以不在工作状态下释放缓存,或者释放间隔更长)。

OCZ应该并不是没有这方面的考虑,从下面三个产品之电容的设置就能看出。

首先是零售版的Vector 180



然后是工程样品时的Vector 180



最后是同样方案的入门企业级产品Saber 1000



在设计Vector 180之初,电容的数量明显更多,但在实际产品中分化成了目前的Vector 180和Saber 1000两个产品(Saber 1000也是PFM+,不变砖的级别)。Saber 1000由于电容更多,在缓存释放上面可以更大胆,性能也更优于Vector 180。

只能说权衡成本效益,最后的结果是今天的Vector 180。电容是钱,固件也是钱,价格降不下来就到不了各位价格倾向型玩家的手里,也就不会出现这么多的讨论



总结

OCZ Vector 180的PFM+功能确实强化了这款SSD的生存能力。但有得必有失,这种妥协下的实践方式给用户造成了一定程度的困扰,其中有一部分是难以避免的,一部分是可以避免的。那些总盯着产品缺点的人会说,千错万错汇成一句话——这都是缩电容的锅。那些会发现产品亮点的人会说,“只”靠一颗小小的电容就将可靠性提升了一个数量级,这个代价是值得的。

对很多购买之前先做大量功课的玩家来说,Vector 180的这个隐藏在数字背后的问题确实有负于他们的期待,但这个问题并不能简单归责于制造、评测、购买的任何一方,追究谁应该背锅已无意义,关键在于通过有益的反馈让用户规避问题、让评测更全面、让厂家进一步完善自己的产品。这也是写这个帖子的目的。

当然,绝大多数用户都是向钱看的,从两个月前论坛团购活动的冷遇到双十一京东和黑五美亚的火爆,体现的都是一个道理——品质和售后是基础,价格才是驱动力。



题外话

看任何测试的时候都要了解这个测试的原理和目的。就比如说第一张图的32QD随机4k写入是无文件系统状态下(当然也就没有TRIM)持续以32个线程写入文件尺寸为4KB大小位置随机的数据,用以反映一块盘的性能一致性。这是一个压力非常大的测试,所以会把一快盘的真实性能展示出来。而日常使用中绝对不会有这种负载,所以也根本不用担心每隔几秒就会有0 iops的出现。事实上这种0 iops就是因为写入太密集,需要频繁更新映射表,这时候再释放缓存才出现的。换个角度说,当我们自己把TRIM禁用以后,再有极为密集的写入,就会有类似这个测试的效果。但即使是这样,也完全避免了长时间0 iops那种卡顿情况的出现,只是写入性能低而已。

大量删除后会严重卡顿的情况在不少SSD上都有体现,比如一票SF-2281主控的SSD,不管新盘脏盘执行一次快速格式化所消耗的时间都让人印象深刻。我入手第一块520的时候,甚至认为格式化过程中盘已经坏了。

掉电保护的普及会成为未来消费级SSD的发展趋势之一。高端玩家不可能只满足于一块SSD跑分高,还要不管怎么折腾跑分都要高,而且要不管怎么折腾盘都不会死。但消费级毕竟是消费级,跑分不好的盘是没人要的。论坛这次做建兴定制版SSD的活动,实际上就是对完整掉电保护的一次推广。只有让一部分人先认识到掉电保护的好处,才会让更多人燃起这个意识。虽然我个人认为参与这次活动的,肯定不少人只是为了硬件去的,还有更多的人是价格倾向型。

本帖子中包含更多资源

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

x

评分

参与人数 1代金券 +200 收起 理由
石头 + 200 三精

查看全部评分

2#
einstein86 发表于 2015-12-26 19:24 | 只看该作者
最后一段话看着觉得没什么其实要求很高啊,企业级稳定态下的高跑分可不是那么容易达成的
3#
Ramaxel 发表于 2015-12-26 19:26 | 只看该作者
简单扼要总结就是:暂时先这么滴吧,O记出固件就OK,不出也就不出了
4#
Vayne 发表于 2015-12-26 19:47 | 只看该作者
好文,关于最后一句,我是冲着数据安全性去买的论坛建兴

评分

参与人数 1绝对值 +1 收起 理由
GreatorK + 1 同!

查看全部评分

5#
fjzjk1 发表于 2015-12-26 19:50 | 只看该作者
520路过.....很少使用到删除大量问题的情况下,就不会发现有这种问题。

180这问题确实是特定情况在特定环境下被无限放大......
6#
Ramaxel 发表于 2015-12-26 20:01 | 只看该作者
fjzjk1 发表于 2015-12-26 19:50
520路过.....很少使用到删除大量问题的情况下,就不会发现有这种问题。

180这问题确实是特定情况在特定环 ...

520那是没处理
这毛病我很早就发现,我从07年左右就开始看蓝光了,嘿嘿
同为2281的金士顿,更新固件到507(听说504就可以,金士顿直接503-507)就没有这个问题出现
但是520一个固件用到死,所以都懂得
7#
志志雄 发表于 2015-12-26 20:04 | 只看该作者
Ramaxel 发表于 2015-12-26 19:26
简单扼要总结就是:暂时先这么滴吧,O记出固件就OK,不出也就不出了

当系统盘玩玩网游之类的不会出现卡顿情况吧?
8#
Ramaxel 发表于 2015-12-26 20:06 | 只看该作者
志志雄 发表于 2015-12-26 20:04
当系统盘玩玩网游之类的不会出现卡顿情况吧?

我就打个撸啊撸,我台式机配置也比较霸道,没看出啥问题不过呢,我的行不代表别人的也行
我的平台起步还是需要点经济基础的
9#
志志雄 发表于 2015-12-26 20:07 | 只看该作者
Ramaxel 发表于 2015-12-26 20:06
我就打个撸啊撸,我台式机配置也比较霸道,没看出啥问题不过呢,我的行不代表别人的也行
我的平台起步还 ...

个人是达不到你的配置了,不过比卡巴标配高就可以了
10#
志志雄 发表于 2015-12-26 20:30 | 只看该作者
别整天把你霸气的台式机挂在嘴边真的我一脸正经的问你问题,你一脸正经的把你台式机带出来什么意思很屌么?  一台I7+980就神上天了



本帖子中包含更多资源

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

x
11#
志志雄 发表于 2015-12-26 20:35 | 只看该作者
志志雄 发表于 2015-12-26 20:30
别整天把你霸气的台式机挂在嘴边真的我一脸正经的问你问题,你一脸正经的把你台式机带出来什么意思很屌么? ...

原来970就这么拽了。
12#
cell-v 发表于 2015-12-26 20:35 | 只看该作者
志志雄 发表于 2015-12-26 20:30
别整天把你霸气的台式机挂在嘴边真的我一脸正经的问你问题,你一脸正经的把你台式机带出来什么意思很屌么? ...

京东理财的收益不是很高,可以了解下别的理财,比例挖财 荷包之类,但是鸡蛋还是分开放好
13#
powergx 发表于 2015-12-26 20:35 | 只看该作者
intel730 用电解电容升压 到35v 储存电能,是好办法
14#
志志雄 发表于 2015-12-26 20:38 | 只看该作者
cell-v 发表于 2015-12-26 20:35
京东理财的收益不是很高,可以了解下别的理财,比例挖财 荷包之类,但是鸡蛋还是分开放好
...

我放京东没有收益的我放的全部是拿白商品 ,余额宝放一些交交话费什么的。
15#
eraser666 发表于 2015-12-26 20:48 | 只看该作者
别人一本正经问问题,你突然装逼

也怪不得别人跟进装逼了

用过SF2281的都不会太在意这个问题,你们懂的
16#
cell-v 发表于 2015-12-26 20:58 | 只看该作者
此精华帖 成功转型。
17#
Ramaxel 发表于 2015-12-26 21:29 | 只看该作者
志志雄 发表于 2015-12-26 20:30
别整天把你霸气的台式机挂在嘴边真的我一脸正经的问你问题,你一脸正经的把你台式机带出来什么意思很屌么? ...

我电脑就是很快咋滴
负债,嗯,我不行,俺不负债
18#
strivelee 发表于 2015-12-26 21:37 | 只看该作者
志志雄 发表于 2015-12-26 20:30
别整天把你霸气的台式机挂在嘴边真的我一脸正经的问你问题,你一脸正经的把你台式机带出来什么意思很屌么? ...

豪,我们交朋友吧
19#
Mufasa 发表于 2015-12-26 21:52 | 只看该作者
eraser666 发表于 2015-12-26 20:48
别人一本正经问问题,你突然装逼

也怪不得别人跟进装逼了

其实我用了一大堆SSD,都没发现这种问题。
SF2281也很多,包括那个被骂过很多次的金士顿V300,照样好好的。

V180 480G在我这用了快半个月了,感觉一切正常。

也许是我要求太低了。。。。


20#
eraser666 发表于 2015-12-26 21:57 | 只看该作者
Mufasa 发表于 2015-12-26 21:52
其实我用了一大堆SSD,都没发现这种问题。
SF2281也很多,包括那个被骂过很多次的金士顿V300,照样好好的 ...

V300我这儿正好也有
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部