固态硬盘还要碎片整理?!快别闹

固态硬盘(SSD)每个块的读取时间都是恒定的,不像机械硬盘读取物理连续的扇区才有最快速度(因此机械硬盘才要“整理碎片”)。而且SSD的写入寿命(按次数)比机械硬盘少一到两个数量级,经常整理硬盘会大大加速老化。事实上,微软官方也不推荐对SSD进行碎片整理:Windows 7 & SSD: defragmentation, SuperFetch, prefetch

另外,SSD暴露给上层软件系统的是“逻辑块”,由控制器来映射到底层的闪存芯片上的物理块。(绝大多数情况下)软件无法绕过控制器直接管理物理块。而且不同于机械硬盘的是,SSD的逻辑块到物理块的映射是高度复杂和相当动态的(题主关注的读平衡问题已经被控制器算法考虑到了,另外控制器还要考虑写平衡、垃圾回收、坏块替换等问题),也不适合上层软件来管理。

如果用接送孩子上学来比喻硬盘的数据读写。那么,机械硬盘:相当于统一用一辆校车(磁头)接送(读写)全市(整个硬盘)的孩子(数据),如果能让孩子们都搬家挨在一起住(碎片整理),则校车的接送会很有效率;

固态硬盘:相当于每家都是家长开车接送孩子,这样孩子们的家是否挨在一起丝毫不影响接送效率,你非要让大家都搬家到一起住(碎片整理),只会是劳民伤财(增加擦写次数),没有任何意义;反而是大家分散住更有效率,可以缓解局部交通压力(均衡存储单元的擦写次数,避免局部过早达到擦写寿命的极限)。


碎片整理是让数据尽量集中并且连续存放,这样机械硬盘的磁头读取的时候可以效率更高;

固态硬盘由于读写的原理与机械硬盘不同,就算进行碎片整理,并不能提高性能或效率;

整理工具往往是根据硬盘分区存储数据的碎片化程度决定是否提示,可能并不考虑是否固态硬盘;

固态硬盘存储单元的擦写次数十分有限,一般情况下尽量避免不必要的数据擦写,比如碎片整理;

同样由于上一条原因,固态硬盘内部有芯片会尽量让整个硬盘的存储单元使用频率均衡化,自动将新增数据放到使用频率较低的区域,这客观上导致数据存储很分散。也就是说固态硬盘的数据本来就应该是分散和碎片化的,这是正常的并且对硬盘寿命有好处。(很多人不建议固态硬盘分区,也是想避免有些区域超负荷有些区域闲置)