Defragger says no
One thing I’ve been on the lookout for is a decent defragger (tool to defragment my hard drive). Since I have a few VM (Virtual Machines) with VHDs that cover 10-15Gb, files that size are likely to be fragmented. So – when my virtual machine is running and booting up, and the files it’s loading are in different fragments on my real hard disc, my real hard drive’s head has to leap all over the place to read those files – greatly slowing performance.
What I’ve been looking out for is something that matches, IIRC, Norton Defrag 6. Norton (now Symantec) kept improving their defragger, to the point where they accidentally made it too good. You could get it to defrag, compact, and optimise the hard drive according to how frequently files were used – so the ones that stay nice and static are crushed up at the front of the drive, and the ones that change regularly were placed towards the back, where there’s more free space to expand into anyway. You could set exceptions (eg. page files), and it all worked fantastically well. Once defragmented, your drive stayed that way for a very long time.
Then, having realised that no-one would ever buy another defragger again if they got it too right, they corrected their mistake, and every defragger since has been pretty useless. Even the top-end tools like Diskeeper just provide features like defragging when you’re away from your computer. Great. I schedule my own defragger to run at 2am every morning – same difference!
So – one power tool I’ve been recommended is DIRMS. Looks impressive enough – all about the configurability, not about the convenience. But does it solve my problem?
Well, let’s do a before/after shot. This is before a DIRMS sweep:
As you can see – not a massive difference. Well, the drive was basically defragmented beforehand, but what I wanted to do was to move all those files to the front of the drive, so that I could create a free space large enough to fit a 12Gb VHD (Virtual Hard Disc) that would be contiguous, with no fragments.
Windows Defragmenter wouldn’t do that anyway – but DIRMS has a ‘compact’ and ‘move’ mode that’s supposed to do precisely this. Since it defrags, compacts, and moves in sequence, there should be nothing to stop it.
That’s not to say DIRMS doesn’t do a good job; on a fragmented drive, it does do a pretty good job on files that are actually fragmented; the compacting does seem to work reasonably well, and moving files up – well, as you can see, it did do it. But it just didn’t do all of it.
Now, you can specify how many passes it should run – so, say, if it defragments, then compacts some files, and creates more contiguous space to allow some larger files to be defragmented next time round; well, you can get it to run 5, 10, however many times you want, and it should give a better result each pass. Again, it still doesn’t seem to reach that ‘perfect’ goal, however.
Also – if you have a BIG file – one that wouldn’t fit in the remaining free space in your drive – then it’s not intelligent enough to move other files around to make room, until it finally gets the big file into just one chunk. You can look at the graph (on Windows Defragmenter) yourself, and see what needs to be done, but even DIRMS can’t figure that out.
So – even though it should be a basic problem to resolve, DIRMS doesn’t seem to be there. Now, I am using a trial version; apparently this has restricted functionality, but since it’s just a command-line .exe, it’s unclear what’s missing – I wonder if perhaps the ‘move’ function I’m looking for is one of those missing.
I’ve received a trial licence, but the licensing mechanism for this version just didn’t seem to work. To add insult to injury, there’s no email support, and use of the support forums requires registration, which the admin has to approve manually.
Still – overall, the trial is free, and I can set Windows Scheduler to run it on my hard drives every morning – rather than have something like Diskeeper sitting in memory constantly, completely unnecessarily – so I’m sticking with it for now. I may even get access to the forums sometime!