Search This Blog

Friday, January 17, 2014

Should You Use an SSD Optimization Utility?

ssd-installed-in-computer
Traditional mechanical disk drives need to be defragmented for optimum performance, although Windows now does a good job of doing this automatically. Some software companies claim that their tools can “optimize” SSDs, just as disk defragmenters could speed up mechanical drives.
The reality is that modern operating systems and solid-state drive controllers do a good job of keeping themselves optimized if you use a solid-state drive properly. You don’t need to run an SSD optimization program like you’d run a disk defragmenter.

Stay Away From Programs That Claim to “Defragment” Your Solid State Drive

Solid-state drives shouldn’t be defragmented. Modern operating systems like Windows 7 and Windows 8 won’t attempt to defragment SSDs. Good, up-to-date disk defragmentation software should refuse to defragment SSDs.
On a traditional mechanical drive, there’s a single head that moves over a spinning platter to read bits of files. If these files are broken up into multiple pieces in multiple places on the platter, the head will have to move around to read the file — that’s why fragmentation slows mechanical drive down and why defragmentation helps — the head doesn’t need to move as much. A solid-state drive doesn’t have a head or any other moving parts. It doesn’t matter where the file is on the drive or how many pieces it’s in, it will take the same amount of time to read the file.
Defragmentation is actually bad for a solid-state drive, as it will add additional wear. Solid-state drives have a limited amount of writes in them, and anything that results in many needless additional writes will decrease the life span of your drive.
If you find an SSD optimization program that claims to defragment your SSD for maximum performance, stay away. The same goes for using old defragmentation programs that aren’t aware of SSDs — avoid defragmenting your solid-state drive.
The Verdict: Defragmentation is always bad, stay away!

Some Programs Send TRIM Commands, But the OS Already Does This

On a traditional magnetic drive, files you delete in your operating system aren’t immediately removed from disk — that’s why deleted files can be recovered. It’s just as fast to write a new file over that old data, so there’s no reason to waste disk resources erasing any parts of the disk. That would just slow things down whenever you deleted a file.
On a solid-state drive, cells must be erased before writing to them. If you delete a file and the data is left lying around, it will take longer when you need to write to those cells as they’ll have to be erased first. The first solid-state drives suffered from this problem, so we invented TRIM to deal with it.
When you delete a file on a modern solid-state drive using a modern operating system, the operating system sends a TRIM command to the drive, telling the drive that the file has been deleted. The drive erases all cells containing the data, ensuring that writing to those cells is fast in the future — they’re empty and ready to go.
TRIM support was added in Windows 7, so both Windows 7 and Windows 8 support TRIM. If you’re using Windows 7 and delete a file on an SSD, Windows will inform the SSD that the data is no longer needed and the SSD will erase the cells. (The latest versions of other modern operating systems like Mac OS X and Linux also support TRIM.)
Some SSD optimization programs claim that they’ll run TRIM on a schedule, informing the SSD of the areas the operating system thinks are empty and allowing the SSD to TRIM them, just in case the TRIM command didn’t work properly earlier.
If you’re using an older operating system like Windows Vista or you were previously using such an operating system on the drive, it’s possible that deleted parts of files are still waiting around and waiting to be TRIMMed. Sending such TRIM hints once could theoretically help in such a situation, but it shouldn’t matter If you’re using Windows 7, which sends TRIM commands when files are deleted.
On Windows 8, the Disk Defragmenter is now named the Optimize Drives tool. It will optimize disks by defragmenting them if they’re mechanical or sending TRIM hints to them if they’re SSDs. This means that running another program that sends TRIM commands on a schedule is completely unnecessary on Windows 8, although even Windows 7 shouldn’t need this feature.
The Verdict: Optimization utilities that send TRIM commands are harmless, but unnecessary. If you’re using an older version of Windows with an SSD, upgrade to Windows 7 or 8.

Other Programs Consolidate Free Space

We previously mentioned that cells on an SSD must be erased before they’re written to. This can be a problem — a single cell contains multiple writable pages. If the drive needs to add additional data to a partially empty cell, the cell must be read, erased, and the modified data written back to the cell. If files are scattered all over your drive and every cell is partially empty, writing some data will result in a huge amount of read-erase-write operations, slowing down write operations. This shows up as an SSD’s performance decreasing as it fills up.
Solid-state drives have controllers that run firmware, which is a kind of low-level software. This firmware handles all the SSD’s low-level tasks, including consolidating free space when the drive reaches a certain level of capacity, ensuring that there are plenty of empty cells instead of many partially empty cells. (Of course, there must be free space to consolidate — you should always leave a good chunk of space empty on your SSD.)
Some optimization programs claim they’ll consolidate free space by moving data around on your solid-state drive with an intelligent algorithm. In a world where this was possible, the results of this would vary from drive to drive.  Some firmwares may wait too long before using their own free space consolidation process. Benchmarks run of solid-state free space consolidation utilities against different firmwares would likely show inconsistent results, as the difference will depend on how good a job each drive’s firmware was doing. In general, a drive’s firmware would probably do a decent enough job that you wouldn’t need to run an optimization program that does this for you. Such programs will also result in additional writes — if a drive waits too long, it may do so to minimize the amount of writes to the drive. it’s a trade-off between free space consolidation and write avoidance.
However, there’s another catch here:  The drive controller itself handles the mapping of physical cells on the SSD to logical sectors presented to the operating system. Only the SSD controller really knows where the cells are located. It’s possible that the drive might present logical sectors to the operating system that may be next to each other for the operating system’s purposes, but far away from each other on the actual physical SSD. For this reason, using any sort of software program to consolidate free space is likely a bad idea — the program doesn’t really know what’s going on behind the SSD controller.
This will all vary from drive to drive and firmware to firmware. Some firmwares may present sectors to the operating system in a way that maps to how they appear on the other drive, while aggressive optimizations on other drives may result in very large distances between sectors on the main drive. There may be some drives with controllers that present the sectors how they appear on the drive and with bad free space consolidation algorithms — such third-party tools may work well on such drives, but don’t count on it.
The Verdict: Your SSD is already consolidating free space for you. It’s likely doing a much better job than a software program that can’t see what’s really going on on your drive would do. Such programs will likely just waste your computer’s resources and wear down the SSD.

“Optimization” is Unnecessary

You don’t need to run an SSD optimization program. As long as you’re using Windows 7 or 8, your operating system is already sending all the TRIM commands your SSD needs. For free space consolidation, your drive’s firmware is likely doing a better job than software ever could. And don’t even consider defragmentation — that would be a waste of time even if it wasn’t actively harmful, which it is.

Taking proper care of an SSD is a matter of avoiding doing bad things to your SSD. Don’t fill it to the brim, perform many unnecessary writes, or disable TRIM.
There’s no need for an SSD optimization program, as unfortunate as that will be to the bottom-line of disk defragmentation companies trying to diversify their businesses as traditional mechanical hard drives become less common.

No comments: