控制器离不开的备用区
SSD 无法就地覆写 NAND:一个块必须先擦除再写入,而擦除块很大——常见以兆字节计——宿主的写入却以 4 KB 页为单位抵达。因此控制器需要不断把有效数据从半满的块里搬出去以便回收它们,而这种搬运需要有可写的空闲块。这份工作备用区就是 spare area:硬盘中物理存在、却不作为用户容量暴露出来的 NAND——标称 240 GB 的硬盘通常装着 256 GB 的裸闪存。
在这之上还有第二层动态空间:TRIM 告诉控制器不再持有有效数据的那些块。你删除文件时,Windows 会发出 TRIM,控制器便可以在后台提前擦除并回收这些块,无需等到需要之时。实际结论是:开启 TRIM 的半空硬盘,表现如同重度 over-provisioning 的硬盘,因为控制器把这些空闲块统统视为自己的游乐场。
- 持续大量写入:一口气复制数百 GB,垃圾回收跟不上趟
- 长期保持九成以上占用的硬盘,备用区被压缩到几乎为零
- 没有 TRIM 的环境:老旧操作系统、部分 USB 桥接和 RAID 控制器
- 写入密集型负载:数据库、视频草稿盘、持续日志
- 寿命进入晚期的硬盘,退役块悄悄吞掉备用区
手动仪式基本过时——空余容量并没有
老建议——只给硬盘分 90% 的区,剩下的留作未分配——源自没有可用 TRIM 的早期 SSD,那时隐藏的备用区是保证控制器有空闲块的唯一办法。在任何有 TRIM 的现代硬盘上,单独划出的未分配区几乎无济于事:文件系统释放的每个块,控制器本来就会回收。这个仪式能延续,是因为它曾经管用、分区工具又让它顺手,而不是因为物理规律仍然要求它。
没有变的是把硬盘塞满的代价。占用超过大约 90% 之后,控制器的回旋余地收窄:每次写入都触发额外搬运,写放大攀升,持续写入速度下滑——这就是 spare area 耗尽在现实中的样子,而且发生在完全健康的硬盘上。实用规则比任何分区算术都简单:SSD 保持约 10–15% 空闲,吃重写入的盘再多留一些,其余交给控制器。读取 SMART 属性的监控工具会提前很久显示出攀升的磨损均衡计数,远在问题需要处理之前。
常见问题与解答
现代 SSD 需要手动做 over-provisioning 吗?
不需要——出厂备用区加上正常工作的 TRIM 已覆盖典型用途;手动留未分配区只在写入极重或无 TRIM 的环境下才有意义。
SSD 上应该保留多少空闲空间?
大约 10–15%,持续承受写入的硬盘要多留;空闲低于约 5% 时,垃圾回收无处施展,写入速度就会下降。
继续阅读
联系我们: [email protected]