Most everything I’ve read in this thread talks about whether you should or shouldn’t defrag your system, but what’s missing from the discussion is what is wrong with fragmented files.
The simple fact that when the Windows NTFS file system is unable to allocate a contiguous range of logical clusters the I/O request the application passed to Windows is now split into one or more additional and often unnecessary I/O operations. It doesn’t matter how fast your hard disk is or whether it is an SSD with no moving parts. Doing “x” more I/O requests than is necessary takes longer to complete the task at hand.
Example: WinWord.exe wants to write 64kb worth of data but the next several segments of free space that NTFS can allocate is only 4kb in size. It’s entirely possible this one 64kb write request gets split into 16 individual 4kb size I/O requests.
To make matters worse, you probably have multiple screens open doing several things simultaneously. These unnecessary split I/O requests are also intertwined with the other I/O’s you’re wanting to do and as a result you maybe also accessing files which are not fragmented, yet their access speed is being slowed by additional surge of I/O traffic caused by the split I/Os. In fact, you can monitor Read/Write Disk Queue Lengths and Split IO/Sec in PerfMon.
Defragmenting the files manually or even on a scheduled basis addresses subsequent access to the file, but you already paid a hefty performance penalty on the initial file creation or modification with the writing of data. You should never have to experience this slowdown nor spend any of your time trying to clean the system up.
The ideal solution would be to eliminate the file and free space fragmentation from occurring in the first place. This gives you the immediate benefit on writes and well as subsequent reads. It reduces or eliminates the need for any system resources to be spent reading fragmented files and then re-writing them to a new contiguous location. A solution like this would be completely independent of whether it is an HDD, SSD, RAID, or SAN/NAS storage as it is not moving data blocks, but simply helping the NTFS file system to do its job better and more intelligently.
As a file system engineer, I’ve been exposed to a lot of nifty things, but this is an area that is often misunderstood by novice and experts alike. Send me a PM if you would like to know more.