2345王牌技术员联盟论坛

下载

APP

王牌

小程序

总回帖数:0 篇
【夏季活动】固态硬盘为什么会掉速?  查看:1071 | 回复:0   查看全部 | 举报 | 收藏
军衔:
◆◆
经验:64486/100000
发帖:
81/54001
◆◆
精华数/发帖数
信誉:
累计收入:
10000元以上
如今在大降价的环境下固态硬盘各种“真香”,但还是有一个让用户糟心的问题——掉速。关于掉速,长期使用过固态硬盘的用户应该有体会(也有人其实没意识到这个问题),今天我们就来谈谈固态硬盘的掉速问题。

接下去我们就按照字面意义上的掉速将其理解为“性能下降”,并分析目前可能导致固态硬盘掉速的种种原因及解决之道。



掉速原因一:原罪 —— 闪存普及的代价 构成固态硬盘主要存储介质的NAND闪存,从最早期的SLC发展到MLC,再到TLC以及QLC。其中的好处显而易见,由于cell单元可以保存的电荷位越来越多,单位容量不断增加,造成固态硬盘的价格持续下降,让普通消费者都能用得起固态硬盘。


但随着NAND闪存单位容量从SLC到QLC的不断增加,也注定了由于更多的电位,控制更加复杂,而写入数据所需要
有人会说,为什么我们不用速度最快的SLC闪存?如果我们还在使用SLC闪存,那掉速问题早就不是事了。只不过SLC闪存做成的固态硬盘,容量小且价格昂贵,对于普通消费者来讲高不可攀,固态硬盘的普及更无从谈起。



掉速原因二:魔法 — SLC虚拟缓存技术 可是为什么我们看到目前市场上的TLC/QLC固态硬盘所标注的性能参数都比上一代MLC性能要好,有的甚至达到了昂贵的SLC固态硬盘才有的高性能表现呢?因为这都是被施了魔法之后的性能表现,这种魔法叫做:SLC虚拟缓存技术。将原本低性能高容量的TLC/QLC中一个cell所包含的3bit或4bit的容量当作1bit使用,在牺牲了容量之后TLC/QLC瞬间就变成了高性能低容量的SLC。


那么既要享受TLC/QLC带来的高容量与低成本的同时,又要享受SLC的高性能要如何解决?工程师们便想出了这个“魔法”:就是在TLC/QLC固态硬盘的总容量中牺牲一部分来虚拟成SLC闪存,并将这部分SLC闪存作为固态硬盘的缓存使用。一些用户常用的程序和资料会被先保存在SLC缓存中,等到空闲时再写入到TLC/QLC组成的可用存储容量中去。所以在理想的情况下其性能与SLC固态硬盘相当。

但如果需要写入的数据量比SLC缓存的容量还大时,就会出现SLC缓存失效,固态硬盘的主控必须对低性能的TLC/QLC进行直接写入,导致掉速发生。比如一下子写入大量多媒体文档,或选取大文件进行固态硬盘性能测试软件。而这些操作与普通用户对固态硬盘的日常使用差异很大,所以我们遇到的机会不多。即使遇到了,也只要稍等一下,等SLC缓存释放清空后,就又能享受高速性能了。




掉速原因三:大扫除 —— GC与TRIM 由于固态硬盘与传统机械硬盘在旧数据删除与新数据写入的工作方式存在根本区别,机械硬盘只需将旧数据标记为可覆盖,并将新数据直接覆盖上去即可;而固态硬盘则需要先对旧数据所在的闪存区块进行一块一块的擦除,然后才能将新数据写入已擦除的区块中。

由于各种写入、删除操作会在固态硬盘留下杂乱的数据,其中有些有用,有些无效,垃圾回收(GC)功能启动之后就会把有用的数据进行整理并拷贝到另外的区块,原来存储数据的区域会被清除,恢复到空盘状态,准备写入新的数据。这些都是固态硬盘自动进行不需要用户手动进行的。

除了GC机制,微软在Windows 7及之后的系统还引入了TRIM指令,这是基于SATA控制器的一个指令,一旦有文件删除或者分区格式化,操作系统就会发TRIM指令给固态硬盘主控告诉它某处的数据已标记为可删除了,固态主控会在电脑空闲时自动先将标记为可删除的数据进行擦除,为新数据的写入做好事先准备,这样一旦有新数据写入需求时,可以直接写入空区块。

而GC及TRIM也能影响固态硬盘的掉速,在系统自动触发GC与TRIM的同时进行速度测试或写入数据时,也会出现掉速的状况。只需暂停操作,等过段时间再进行即可避免掉速。


另外,“少分区、小分区”也很重要。
少分区:顾名思义就是最好将固态硬盘分成一个区,一方面考虑到4k对齐对固态硬盘的影响;另一方面分区太多,容易导致分区错位,性能也会受到影响。
所谓“小分区”就是不要把固态硬盘的容量都用满,至少保留20%容量空闲,以便固态硬盘内部的自动优化操作,如:动态缓存管理、GC、TRIM等。
添加回复 (0) 2023-08-22 11:49:08 [1楼]
总回帖数:0 篇
快速回复主题
您需要 登录或注册 后才可以回帖
发表长帖时是否担心误删除或者操作失误关闭页面呢?不用担心,当你处于编辑状态时每隔30秒系统会自动保存已输入的内容,发帖不再担忧啦!