当你兴冲冲装上一块大容量固态硬盘,最痛快的做法莫过于在Windows磁盘管理里,把所有闪存颗粒的空间全部划进一个分区。看着“此电脑”里那个干净完整的盘符,总有一种物尽其用的满足感。但固态硬盘一旦装到超过85%这个利用率门槛,性能下降就不是线性的了,它会撞上一堵看不见的墙。写入速度会断崖式下跌,系统延迟突然飙升,你那昂贵的NAND闪存颗粒的物理寿命,也开始进入倒计时。
在高密度TLC和QLC存储成为主流的时代,未分配的空间并不是浪费。它实际上是保护硬盘性能与物理健康的缓冲区。把固态硬盘原始容量的15%从Windows眼前隐藏起来,就能为闪存控制器留出它进行后台维护所必需的喘息空间。
硬盘快被塞满时,到底发生了什么?问题出在NAND闪存那块规矩很怪的地盘上。数据可以按页面(Page)来读写,一个页面大约是4KB到16KB,但擦除操作只能在块(Block)级别进行,一个块包含数百个页面。要覆盖一个页面上的旧数据,控制器没法直接替换那些比特位。它必须先把包含该页面的整个块读到临时内存里,在物理层面上擦除整个块——这个过程会磨损微观的氧化硅层——然后再把更新后的数据写回去。这种“读取-擦除-写入”的折腾极其耗费资源,是造成物理磨损的元凶。
另一个直接冲击NAND寿命的因素是写入放大系数。这个指标衡量的是实际写入闪存的数据量,与主机操作系统发出的逻辑写入数据量之间的比值。当硬盘接近满载,控制器为了清理出哪怕一个干净块,也不得不反复搬移已有数据。写入放大系数被拉得极高,闪存颗粒的寿命比原定计划提前数年就消耗殆尽。
手动预留空间,就是故意在固态硬盘上留下一块完全不分配给操作系统的区域。这个操作到底做了什么?它创造出一块专用的物理工作区,对Windows完全不可见、不可访问。操作系统永远无法往这块区域写入文件,这也就意味着它永远不会被塞满。
这让控制器终于有了从容调度的余地。闪存转换层(FTL),也就是固态硬盘内部的“操作系统”,会把这块干净的未分配空间用于后台优化。第一个关键任务是垃圾回收。在操作系统发出写入指令之前,控制器就有余裕在后台清扫、整合、擦除那些被部分填充的块。另一个重要机制是磨损均衡。有了充足的备用空间,控制器能确保写入周期被均匀地分配到所有闪存单元上,而不是逮着少数几个块反复摩擦。一块塞到95%容量的固态硬盘,其实际工作寿命可能只有同等品质但只用了75%容量的硬盘的一个零头。
热门跟贴