如题,这篇文章诞生的原因是一个群友的疑问题,经过他的孜孜不倦的考查验证……
我还是自己写一篇文章出来,简单的去聊一下这件事情。
首先,我们要定义一下,什么是掉速?
掉速一般有两种情况:
1、广义上是指速度突然垂落,比如原本写入1000m/s突然变成了70m/s
典型情况就是,一个硬盘在大量写入数据,比如30GB的文件之后,速度会突然下降,这个是掉速。
2、另一种掉速则是长时间使用,大量的容量被占用之后,整体硬盘的颗粒写入速度变慢,因此而产生掉速的感受。
掉速还会受到颗粒和主控的影响,三星早期就为算法而导致硬盘会掉速。
一般来说SLC和MLC颗粒是不会掉速的。
我有一个MLC的太阳花120G的固态硬盘,己经七年左右了,依然没有任何掉速迹象。这不是广告,这个品牌可能己经凉凉了。
MLC不掉速的原因就很简单,全部是依靠真实写入速度,是多少就是多少,因此才不会掉速。
掉速的硬盘主要是TLC和QLC,当然,如果以三星命名法,我们可以叫3bitMLC、4BitMLC。
主要原因是其真实写入速度较低,为了弥补真实写入速度的缺陷,硬盘厂商在设计之初,使用了SLC颗粒进行缓存。
在这个高速缓存区的时候,可以使得TLC/QLC,实现达到近乎SLC级别的读写效率,比如:英特尔660p,西数sn500,一个QLC,一个TLC,但是读取均能超过1700m/s,这显然不是TLC和QLC所能做到的。
那么在他们的SLC缓存消耗之后,就会出现一个明显的掉速,比如660p,会掉到70m/s左右,sn500则在300m/s左右。
这个是最直接也最常见的掉速。
图中为缓存耗尽的256G的SSD。
另一种掉速,则是硬盘空间即将耗尽的时候产生的。
这种掉速比较难以理解,但其实原因并不复杂。
本质上来说,SSD与HDD最大的区别,就在于其工作方式不同,SSD的特殊或者说高效之处在于,其并不是像传统HDD一样,使用的磁道寻道方式写入数据,而是按照整块整块颗粒分区进行写入或者删除,所以我们在给SSD分区的时候通常会使用4K对齐以便更好的发挥它的性能。
大量的随机数据写入,会在SSD里留下杂乱的数据,有些有用,有些则无用。
那么厂商是如何解决这个问题的呢?
在SSD的GC回收机制以及win7以上的TRIM指令里,GC回收机制会把有用的数据自行拷贝到到全新的区块,将杂乱的存储区域清理,以保证SSD的速度不会受到影响。
TRIM是win7以上系统才有的功能,这也是我们说XP不支持SSD或者SSD不好用的原因。TRIM也是于GC回收机制,一旦有文件删除或者分区格式化等等操作,系统会发出TRIM指令给SSD,告诉他数据己经删除,SSD因此会知道哪些数据可以动哪些不可以动,接着就可以清空操作以便升级。
理论上来说GC和TRIM也一样会影响到性能,导致其掉速。但是随着算法的优化,这己经是基本功能,基本上不会再导致掉速现象发生。
而到了9102年,发展到现在,目前的厂商采用了更加机制的方案。
以慧荣的2263XT主控为例:
SM2263XT采用了HMB方案,即调用系统内存空余空间来替代缓存写入,而本身不带缓存,这样带来的好处是显而易见的,内存的缓存极大,速度极快。
SM2263XT支持最大2400MB/s读取 1700m/s写入,对于入门级的SSD来说,绰绰有余了,而像英特尔660p这样的厂商,则是采用了加大缓存的方案,比如660p己经停产了256G版本,只有512G及以上型号。
512G-2TB使用了 6-12G超大SLC缓存,平均写入不掉速数据可达100GB,在民用场景里几乎可以为所欲为。
对于我们一般用户来说,如果觉得掉速会对我们受到影响。
可以直接购买原生MLC或者低端的,类似于2263XT这样的解决方案。
当然,更大缓存更大容量的QLC或者MLC也是很好的解决方案。
如果你只有250G,写入到230GB会掉速,但如果你有1T的时候,写入了900GB,我觉得你就先准备新盘给小姐姐换新家吧,不要纠结掉不掉速的问题的了。