分享

假如128G的固态硬盘装了127G,反复擦写那1G,是不是会很快挂掉?

 天下小粮仓 2018-09-20

非要这么用下去的话,绝对是死的快。很多朋友留言说没有那么笨的主控和那么高的写入倍率,特意加了段说明放在最后,往下滚动~~

但是真用起来的话,你得有足够的勇气接受它的速度。。。。。。


SSD的介质,无论是最耐擦鞋的SLC,还是未来的主力QLC,寿命都非常有限,因此需要使用平衡写入算法,说白了就是每个cell写入相同次数,这就会造成所谓的写入倍率问题。

题主这种128GB空1GB写入的情况,最最最坏的可能是写入倍率高达128,也就是为了写入这1GB数据,要把已经存储在里面的127GB数据平移一次,然后再写入真正的1GB新数据。

其结果就是QLC这样只有200~400次寿命的介质,因为这一次写入,直接全盘掉1,理论上这么干上几百次,就能让一颗全新的SSD报废。


而实际情况是,用户将无法忍受这样写入时的性能下降,早早放弃了这个操作。。。。。

写入倍率128,理论写入速度变成1/128,实际因为I/O性能也下降为1/128,速度还会下降。简单算下,即便是最快的SATA接口SSD,速度也不过560MB/s左右,也就是实际速度只有大约4MB/s水平,光写入这1GB数据就要花掉4分钟时间,这还是最理想的。实际上,SSD存到这么满的情况时,速度将会下降到300KB/s甚至更低水平。。。。写入1GB数据的时间要论小时计,能忍不?从新干到报废,大概用10天就可以了~

为什么不用NVMe接口的SSD来计算?I/O和介质性能都好很多。原因是真没哪个厂商有病,会用昂贵的NVMe解决方案做128GB那么小的SSD。。。。


通常来说,CHIP会推荐SSD剩余空间达到总容量的10%~20%水平,才能保证性能基本不下降,同时寿命不会缩减太厉害,128GB装了127GB数据还要读写,太极端了。



上面的表述,为了方便大家理解,用了理论极限值来表述,很多朋友说,没有那么笨的主控,会真的为了写入最后的1GB把整个硬盘重写一次,造成体验速度的下降和寿命的下降。

没错,各家调度算法,解决的正是这个问题,注意,不是主控。SSD厂商通过控制算法实现为不同应用或使用场景的优化,有性能、有耐用性、有密集写、也有低功率。

对消费级产品来说,大家听说过的延长寿命或提升性能(极端状态),都要在2^5×(2^30)B,也就是128GB上拿出几GB空间做成缓存,所以更多的时候见到的实际标称容量是120GB左右。当然这个数据还有10^9和2^30转换时的7%偏差问题,也有不可用区块剔除的问题。

这几GB缓存解决的问题,就是通过算法将碎片化(存储和写入时序)的数据,尽量整合,以减少写入次数和频度,这个特性有些类似于机械硬盘的NCQ。写入缓存越大,自然可以降低主存储区域的写入次数,延长寿命、提升性能,但是这是要花钱的!假设是QLC,最廉价的解决方案就是将分割出来的8GB空间转化为MLC写,也就是标称2GB存储,当然变SLC写模式也行,不经济就是了。

当然,另一个现实是,QLC和64层堆叠大规模上来以后,120GB这个量级的SSD基本没有了,一个die动辄256Gb,拼出够8位的128GB很难,只有做更大容量了。另一侧的故事就是为120GB做缓存的容量一般是4GB,TLC缩到MLC嘛。

市面上常见的120GB、250GB、500GB,就是在128GB、256GB和512GB上分预留出缓存区域的结果。理想的写入倍率可以被降低到3左右,很多几年前的评测都是用这样的参数。但是,这是在测试中的体现,测试的时候谁会存满了测一个难看的性能给读者看呢!

另外,还是提醒大家,这种添加缓存优化性能的设计,局限于消费级产品上。

对企业级产品来说,比如数据库、云,对数据读写灵敏性要求高很多,而且是非结构化难以算法优化的数据,也就意味着这种缓存算法的优化都无效了~~那么结果就会越来越趋于理论的极端劣化水平。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多