I keep hearing that this is a huge no-no. Why is this? I run Ubuntu mostly so it doesn't affect me, but I was just wondering.

link|improve this question

75% accept rate
2  
I can't say I'm educated in this area, but I believe it is because SSDs are damaged slightly every time they perform a write, and defragmenting wears out the SSD faster. Also, since SSDs have no moving parts, defragmenting SSDs gives a smaller performance gain than defragmenting HDDs. – Blixt Jul 15 '09 at 13:33
3  
@Blixt: you should have posted that as an answer, since it is, well... an answer to the question... – R. Martinho Fernandes Jul 15 '09 at 21:24
feedback

4 Answers

up vote 37 down vote accepted

Solid state drives are based on flash memory, which age very differently than standard spinning platter-based hard drives. Each sector has a limited number of write cycles, so the drives include wear-leveling features that allows the drive to last longer by essentially fragmenting the drive on purpose.

The read times are not greatly improved by defragmenting as they are in standard drives, so there is no real gain in defragmentation, but by doing so, you are increasing the number of writes to the drive, thereby decreasing the drive life.

link|improve this answer
+1 for extra information about "wear-leveling." I didn't know that! – Blixt Jul 15 '09 at 13:37
This is the most complete answer so far. – Brad Gilbert Jul 16 '09 at 4:08
feedback

Defragmenting puts your sectors near each other which is helpful for a disk that spins around. However, this is useless on an SSD which has constant access time for any sector. Defragmenting just causes extra writes on a disk (SSDs have a limited number of writes due to their design)

link|improve this answer
feedback

Note that there shouldn't be any technical reason for not "being able to defragment a solid state disk", in the sense that you could start a defragmenter program and run it against the disk.

But doing so doesn't have the effect it does on non-solid state disks, as moving the clusters together won't actually speed up the disk.

On the other hand, what you will do is perform lots of unnecessary writes on the disk, and this will shorten, albeit slightly, the life-span of the disk.

Additionally, many solid-state disks does optimizations to lessen this problem by reducing repeated writes to the same area, and this is transparent to the outside system, in which case the clusters might not be moved together at all but instead spread out over the disk. This technique is typically "wear leveling".

If a defragmenter program refuses to defragment a solid state disk (or even just list it as a disk you can select), I'd wager that it's basically a software refusal to do so, just to avoid the problems outlined above.

Note that I don't know enough about the underlying protocols used to defragment a disk, so there might very well be a hard block from a solid state disk to accept defragment commands, if there are such things. The reasons for this, however, are the ones described here.

link|improve this answer
feedback

Defragging will lower the live expectancy of your drive by performing unnecessary passes over a drive with a limited life-span.

link|improve this answer
feedback

Your Answer

 
or
required, but never shown

Not the answer you're looking for? Browse other questions tagged or ask your own question.