The Way Ahead / Conclusion
There Is No Defrag (yet)
While Intel reportedly has something in the works, there is currently no ‘easy’ way to defragment the sub-block level fragmentation that occurs as a result of write combining. In addition, we found that running the Windows defragmenter on the X25-M would rapidly Swiss Cheese the crap out of it, defeating the purpose entirely. All is not lost, however, as the ATA spec is being updated to include special commands such as “TRIM”, “DISCARD”, and “UNMAP” (a SCSI command). The new protocol lingo will let the Operating System tell the SSD when areas are no longer in use, such as when files are deleted. This will speed up the process of writing data to flash blocks no longer containing valid data, as the wear leveling routine doesn’t have to play musical chairs with data that is no longer relevant.
Windows 7 will support some variation of these commands, and firmware flashable drives like the X25-M should have the ability to be brought up to speed as well. This will not completely solve the problem – It falls short on some RAID configurations (i.e. RAID 5), since all data must remain ‘valid’ for parity calculations to work properly in the case of a drive failure. Data recovery also becomes more complicated, since deleted files could be overwritten by the wear leveling routine even if the OS did not specifically write over the addresses where those files were originally stored.
Workaround #1: Change your usage pattern
Until Intel tweaks their write combining algorithms and revises their released firmware, there are ways to minimize your chances of falling into the fragmentation black hole. Here are some things to avoid:
- Disk partitions not properly aligned with flash block boundaries (to be covered in another article).
- Heavy temporary file activity (think temporary internet files).
- Heavy page / swap activity.
- Applications that write random small chunks, even within a larger file (i.e. BitTorrent / Steam).
- Running *any* disk defragment utility (DON’T DO IT!).
Things we found to not have an impact:
- AHCI / NCQ: While increasing the overall speed of the drive and potentially feeding the X25-M data out of sequence, NCQ had a negligible impact on write fragmentation levels or the rate of fragmentation encountered in our testing.
- Time: The issue is the mix of small and large files written and how much is written. The X25-M will only work to defrag itself as writes are taking place. There is (currently) no idle-based self defragmentation of any kind.
Even with very little deliberate write activity it is still possible to overly fragment the drive over time. For example: Every time a file is read under NTFS, the ‘Last Accessed’ directory metadata is updated to reflect the new date and time. Between metadata, registry entries, system logs, and a plethora of other random events, the simple act of booting your machine results in thousands of small writes. Since the X25-M can only defragment these areas when larger files are written, it may be useful to tailor your usage to occasionally write some larger files to the drive in an effort to help keep the fragmentation beyond the point of no (easy) return.
Workaround #2: SteadyState
Some users of non-Intel MLC-based flash drives have worked around their small write slowness by using Microsoft Windows SteadyState. Officially meant to be supercharged version of System Restore, able to ‘reset’ the entire OS back to a default state on each reboot in a VMware snapshot-like fashion, it provides MLC flash users with an added bonus through its execution. SteadyState reroutes all disk writes, regardless of their randomness, to a contiguous ‘change’ file. This brings small write performance much closer to the ‘sequential write’ speed of a given drive. In the case of the X25-M, it will significantly reduce the internal fragmentation that occurs as a result of random writes. If you are a Windows user and willing to deal with the various pros and cons of running something like SteadyState, it may be worth checking out, regardless of the SSD you may currently be using.
A laptop user placing light workloads on their X25-M may never see the worst of these issues, but many users are going solid state for their desktop OS partitions, and a typical power user workload can fragment these drives in short order. It is likely that other manufacturers will employ similar write combining techniques in the future, and with those new devices may come similar real world slowdowns. While the specialized controller used by Intel enables it to bulldoze through most scenarios, we have seen that even the best logic is subject to severe write combining / internal fragmentation. Hopefully Intel can further tweak their algorithms with a future firmware update to the X25-M. In the meantime, we hope our suggestions keep your SSD on the speedier side of things.
There are a few more SSD slowdown articles in the PCPer pipeline. Stay tuned for further updates!