电脑选购必读:固态硬盘速度虽快但用久降速,原理何在?
每当你选购电脑的时候,你会发现,关于配置存储的介绍总是各不相同。有的是纯固态(SSD),有的是纯机械,还有的是固态加机械的组合硬盘。

固态的主要存储方式是半导体存储,机械的主要存储方式是电磁存储。固态硬盘的最大读取速度为 400 - 600MB/s,机械硬盘的最大读取速度不超过 200MB/s。
SSD 的速度比机械硬盘快很多。它有一个较为严重的问题,用久之后,速度会明显下降。这到底是什么原因呢?
什么是SSD?
我们首先要了解 SSD 的基本概念。固态硬盘是用固态电子存储芯片阵列制成的硬盘。它包含控制单元和存储单元。
目前,市面上的固态硬盘有两大类。一类是把闪存(FLASH 芯片)当作存储介质。另一类是把 DRAM 当作存储介质。
闪存类的固态硬盘,即通常所说的 SSD。它的适用范围极为广泛,像笔记本硬盘、U盘以及存储卡等都属于 SSD。
SSD主要由主控、闪存以及缓存构成。闪存起到了关键性作用,它是负责存储数据的闪存颗粒,对 SSD 的性能寿命有很大程度的决定作用。
这种存储器允许在操作中被多次擦或写。
目前闪存颗粒存在四种类型。其中,SLC 闪存的一个存储单元仅能存储 1bit 数据,这意味着它只能存储一个 0 或者一个 1,总共只有两种状态。而 MLC 闪存的一个存储单元则可以存储 2bit 数据,0 和 1 能够进行排列组合,从而拥有 00、01、10、11 这四种状态。QLC 是最新的闪存颗粒。它的存储容量是 SLC 的 8 倍。0 和 1 能够组成 16 种状态。以此类推。
SSD 的闪存容量在持续增加,然而擦除和写入的次数却有所减少。这意味着 SSD 的使用寿命变短了。相比之下,SLC 的使用寿命是 QLC 的 100 倍。
SSD 的接口除了闪存外,还分为四类。一类是 SATA,一类是 mSATA,一类是 M.2,还有一类是 PCI-E。
这种总线适用于几乎所有的台式机和笔记本。
mSATA 是一种迷你版本的 SATA 接口。它有 M50 msata 和 M30 msata 这两种规格。其读写速度均为 520MB/s。主要适用于超极本,像联想的 E220s、E420s、Y460 等。
Intel 推出了 M.2 这一替代 mSATA 的新接口规范,它存在两种类型,分别是 Socket 2 和 Socket 3。其中,Socket 2 的最大读取速度能达到 700MB/s,Socket 3 的理论带宽可达 4GB/s。Socket 2 可用于部分中低端笔记本。Socket 3 几乎能用于新上市的台式主板以及中高端笔记本。
PCI—E 是一种高速串行计算机总线。它存在 5 个版本。从 1.0 版本开始,一直到最新的 5.0 版本。各个版本的读写速度不同,1.0 版本的读写速度为 250MB/s,2.0 版本的读写速度为 500MB/s,3.0 版本的读写速度为 984.6MB/s,4.0 版本的读写速度为 1969MB/s,5.0 版本的读写速度为 3938MB/s。这种总线适用于几乎所有的台式机。
综合来看,SSD 闪存颗粒存在差异,其读写速度和擦除次数也会不同。容量越大的闪存,使用寿命越有限。SSD 接口不同,会直接影响读写速度。
写入放大和垃圾回收
不过,以上两种原因对 SSD 使用前的速度有影响。使用后速度下降的原因主要有两个方面,一是写入放大(WA),二是垃圾回收(GC)。
WA 是闪存和 SSD 中存在的一种不良状况。实际写入的物理数据量比写入的数据量要多出许多倍。FLASH 芯片具有先擦除再改写的特性。它需先将目标数据所在的文稿整体读出来并缓冲到缓存器里,接着把要改写的数据覆盖到缓存器上,最后把缓存器写入到另一个文稿中。正因如此,即便只是更新一个字节,实际上也会有 4KB 的数据被写入到 FLASH 芯片中。同时也使得写入速度下降。
当 FLASH 芯片中已没有可以直接写入的空白文稿时,JVW(java 虚拟机)会调用垃圾回收机制以回收内存空间。GC 会在 FLASH 芯片中去查找那些被废弃或者删除的文稿。接着,它会把这个文稿擦掉,以便用来存放你的新数据。然而,因为 GC 与 FLASH 的擦写单位是不一致的。写入的时候是以文稿为单位进行的,而擦除则是以 Block 文件类型为单位的。一个 Block 当中包含有 16 个文稿。所以,当 GC 找到一个废弃文稿的时候,实际上这个文稿需要先把 Block 中的其余 15 个文件搬到其他的地方。因此每当你更新 1 字节时,在后台实际上会有 16 个文稿被写入。每个文稿的大小是 4KB,16 个文稿的总大小就是 64KB。这样一来,SSD 的容量会成倍减少,最终使得写入速度下降。
简单来说,你的 SSD 存储数据增多时,空白文稿会减少。为腾出额外空间,GC 会寻找废弃文稿。随着次数增加,SSD 的速度会变慢。
另外,GC 不是在需要写入数据时才开始行动。即便 SSD 处于空闲状态,它也会默默地进行操作,提前把一些空间预留出来。
那如何避免SSD因存储数据过多导致速度下降的问题?
厂商的做法是依据 SSD 等级制定不同方案。例如,对于入门级 SSD,会通过缩小可用容量,预留出一部分空间,以防止其完全写满。最为直观的例子是,有些电脑明明标注着 512GB 的存储容量,但实际可用的只有 480GB。
中高端的 SSD 会搭载额外的缓存来降低写入放大。例如三星 970 PRO NVMe M.2 1T 配备了 4GB 的缓存容量。
通过这些功能机制,用户可以降低写入放大。
实测:SSD爆容量对速度的影响
我们进行测试,目的是进一步确认 SSD 容量满后是否真的会对速度产生影响。
测试之前,MacBook Air(2018 款)的固态硬盘剩余容量是 71.58GB。使用 Disk Speed Test 这个工具,测出其硬盘的写入速度为 492.1MB/s,读取速度为 1832MB/s。
我们要把电脑的可用容量进行变小的操作,留出 9.02GB 的空间,接着再对 SSD 的速度进行一次测试。在这个时候,SSD 的写入速度变为了 448.2MB/s,读取速度则是 1791MB/s。
对比前一组数据,你会发现,SSD 一旦可用容量减小,其写入速度和读取速度就会有所下降。
PC端测完之后,我们再来看下移动端。MoFirLee拥有一部 64GB 的 iPhone 11,其硬盘剩余容量为 27.2GB。通过 DiskBench 测试,硬盘写入速度分别为 201.7MB/s、142.1MB/s、135.2MB/s,平均写入速度是 159.7MB/s。读取速度为 360.6MB/s、485.9MB/s、387.1MB/s,平均读取速度为 411.2MB/s。
手机硬盘可用容量变为 1.17GB 之后,其写入速度分别为 183.7MB/s、159.6MB/s、195.5MB/s,平均写入速度是 160.6MB/s;读取速度分别为 609.7MB/s、610.3MB/s、510.6MB/s,平均读取速度为 510.7MB/s。
第一次的硬盘写入速度相比上组数据确实有所下降。第二、三次的数据比上一组快。三次的读取速度都比上组快。出现这种情况可能是因为主控的算法和优化,所以测得的数据有所差异。
最终得出的结论是,SSD 可用容量变小时,写入速度和读取速度都会下降。然而,实际上主控对这些情况可能还有其他的优化或控制措施,并且存在不同的算法,从而导致了差异。
小结
如今对 SSD 处境可用 8 字形容,进步却似倒退。现今市面上的 SSD,制程工艺越先进,寿命却在缩短,以此换得了更快速度。从侧面能看出,厂商在现有技术无法突破时,选择牺牲了一些东西。
使用前,闪存颗粒、接口类型、主控的好坏以及升级固件会影响 SSD 速度。使用后,写入放大、垃圾回收机制和不良的存储习惯是导致 SSD 速度受影响的主要因素。好的 SSD 速度较快,但使用寿命会降低,价格也会较高。便宜的 SSD 速度通常一般,然而使用寿命却很长。至于如何选择,完全取决于个人需求。
为避免 SSD 因可用容量不足而使速度下降,最好将每个硬盘的资料全部备份,之后再做 4K 对齐。若你新买的电脑,其硬盘类型为固体,那么在使用前可将 SSD 进行高级格式化,如此,你的 SSD 速度就不会轻易下降。