TRIM是操作系统通知固态硬盘哪些数据块已被删除的ATA指令,让SSD主控可以提前回收无效空间。它能显著缓解固态硬盘越用越慢的问题、减少写入放大并延长闪存寿命,现代系统均默认开启。

| 所属协议 | ATA指令集 |
| NVMe对应指令 | Deallocate |
| SCSI对应指令 | UNMAP |
| 主要作用 | 回收无效块、降低写入放大 |
| 系统支持 | Windows 7+/macOS/Linux |
TRIM是一条由操作系统下发给固态硬盘的存储指令,用于告知SSD主控哪些逻辑块上的数据已被文件系统删除、可以视为无效。SSD据此提前回收这些空间,从而维持长期使用后的写入性能。在NVMe协议中对应的指令称为Deallocate,SCSI/SAS体系中称为UNMAP,作用相同。
机械硬盘删除文件时只需在文件系统里做个标记,旧数据留在原地等待覆盖即可。闪存却不同:NAND必须先擦除才能写入,且擦除以远大于页的块为单位。如果SSD不知道哪些数据已经作废,垃圾回收时就会把这些无效数据当成有效数据一起搬移,白白消耗写入次数并拖慢速度。TRIM打通了文件系统与主控之间的信息壁垒:删除文件时顺手告诉SSD这些地址不用留了,主控便能放心擦除整理。
Windows 7、macOS、主流Linux发行版起均已支持TRIM并默认启用:Windows以自动的存储优化定期执行,Linux可用fstrim定时任务或挂载参数实现。需要注意的是,被TRIM过的数据几乎无法恢复,误删文件后应立即停止使用并断电求助专业恢复,但成功率远低于机械硬盘。
问:怎么确认TRIM已开启?答:Windows下可在管理员命令行执行fsutil behavior query DisabledDeleteNotify,返回0表示已开启;也可查看驱动器优化工具中SSD的优化记录。
问:TRIM和垃圾回收是一回事吗?答:不是。垃圾回收是SSD主控内部整理闪存块的机制,TRIM是操作系统提供给它的情报;没有TRIM垃圾回收也能工作,只是效率低、损耗大。
问:需要手动定期执行TRIM吗?答:现代系统已自动处理,无需手动干预;老旧系统或通过部分USB硬盘盒使用SSD时TRIM可能不生效,这类场景值得检查。

| 所属协议 | ATA指令集 |
| NVMe对应指令 | Deallocate |
| SCSI对应指令 | UNMAP |
| 主要作用 | 回收无效块、降低写入放大 |
| 系统支持 | Windows 7+/macOS/Linux |
登录 后参与讨论
暂无讨论,来发表第一条评论吧