Don't Let Fragmentation Slow Your Disk Drives

Executive Software recently delivered Diskeeper 1.01, a disk defragmenter compatible with Windows NT 3.51 running Service Pack 1, 2, or 3. Diskeeper has borne the brunt of bad press in the past because it was not in synch with the latest version of NT. I've had Diskeeper since it was called vaporware, and I waited patiently for more than six months to receive the program only to find that it wouldn't work with my beta version of NT. Running Diskeeper wasn't worth going back a version of NT, and my Diskeeper sat on a shelf gathering dust for months.

I hope Executive Software now will be more timely and keep up-to-date with the latest betas and service packs. To be fair, I shouldn't direct all the blame for an incompatible disk defragmenter at Executive Software. Microsoft needs to put the hooks into the NT kernel so that each time a new version of NT comes out, Diskeeper will be compatible.

The Evaluation
Diskeeper currently runs on Intel and Alpha NT hardware platforms. I evaluated Diskeeper 1.01 for Windows NT 3.51 with Service Pack 3.

The disk system of my dual 60-MHz Pentium system is not exactly typical and has been a good evaluation system for Diskeeper. I have three disk controllers and eight hard drives for a total of approximately 13GB. I have an IDE controller built onto the motherboard with a Maxtor 213MB drive, an Adaptec 7770 controller (2742T dual-channel) built onto the motherboard with an older external Seagate 1.2GB full-height drive, and an internal Digital DSP 3160 1.6GB drive. I also have a Mylex DAC 960 five-channel RAID controller with five Quantum Atlas 2.1GB XP32150S drives, each on its own channel running in a RAID 0 configurated for striping. I have hard-disk partitions C through N (excluding K, which is my CD-ROM), and four of them are NT File System (NTFS) partitions. The rest are File Allocation Table (FAT).

Since I installed Diskeeper, I've seen faster performance when I load and run various applications, especially when I read articles against my news-spool partition (Yes, NTFS can become fragmented, contrary to popular belief. See the sidebar, "How to Fragment an NTFS Partition," on page 48). In a nutshell, any disk partition that has a high degree of file turnover will become fragmented. This statement holds true for both NTFS and FAT partitions.

Diskeeper easily defragmented all my partitions except one: I have an 800MB FAT partition on my E drive that had about 100MB free. Because the free space was not contiguous, Diskeeper had a problem defragmenting it and didn't seem to be making any headway even after running continuously all night for three days. Although Diskeeper might have eventually gotten somewhere, the CPU time it needed didn't seem worth the effort. To resolve this problem, I copied all the data to one of the other drives, deleted all the files and directories, and copied the data back. For the most part, these steps combined my free space, and Diskeeper was able to defragment the drive. Except for this small inconvenience, I found Diskeeper to be a superior product. I can just set it, and forget it, and it watches over my drives to keep them defragmented. I run Diskeeper nightly on my drives that get regular use, and every third night on my partitions that are not heavily used.

TABLE 1: Times Required for a Single Defragmentation Pass
Drive/ File System 1024 Blocks Used Available Capacity Avg. Time to Defragment
C/ FAT fixed 103,424 97,916 5508 95% :16
D/ FAT fixed 40,846 25,302 15,544 62% :20
E/ FAT fixed 798,480 711,248 87,232 89% 1:20
F/ FAT fixed 208,592 112,988 95,604 54% :23
G/ FAT fixed 103,424 33,064 70,360 32% :07
H/ FAT fixed 102,166 39,356 62,810 39% :30
I/ FAT fixed 511,712 233,240 278,472 46% :39
J/ NTFS fixed 666,666 298,556 368,110 45% 1:08
L/ NTFS fixed 682,731 444,472 238,259 65% 2:15
M/ NTFS fixed 5,120,000 707,216 4,412,784 14% 3:10
N/ NTFS fixed 4,720,640 126,484 3,455,756 27% :01

Table 1 shows the average time Diskeeper takes for one defragmentation pass on the disk partitions in my system. Notice that just the raw size of the partition is not a good indicator of how long a single defragmentation pass will take: My L drive is not the largest sized partition, but Diskeeper takes more than two hours for one pass. The total number of files on the drive seems to be a better indicator of the time Diskeeper needs to make a pass. My L drive has more than 20,000 files because it is my news-spool partition. The time for Diskeeper to defragment a drive will vary depending on the CPU configuration and the types of disks and controllers on your system.

After you install Diskeeper, stay on top of how well it's doing by evaluating how fragmented your partitions are after Diskeeper runs a few passes. The amount of fragmentation will vary depending on how much the partition was fragmented in the first place and how much free space is available in it. Once you get the amount of fragmentation on your drives below a certain threshold (e.g., 5% to 10%), Diskeeper seems able to simply run one pass nightly to keep fragmentation in check. You no longer need to monitor the program unless you have a partition with a high access/change rate that doesn't have much free space.

Screen 1 shows the interface for scheduling Diskeeper. Notice you can schedule which drives run and when and how often they run. Diskeeper has performed flawlessly for me so far and defragments my drives while I sleep.

Two utilities come with Diskeeper to evaluate the fragmentation in your partitions. Screen 2 shows the Diskeeper Fragmentation Monitor. This is a graphic display of a disk partition with various colors to indicate fragmentation, contiguous files, and free space. Screen 3 shows the output for the Diskeeper Fragmentation Analysis utility. This utility is much more useful than the Fragmentation Monitor: The Analysis utility shows the percentage of fragmentation and how many files of the total number on the disk are fragmented. Screen 4 shows the Diskeeper Status option, which lets you see which disks are being defragmented and which are scheduled to be defragmented.

Although I like the product, I saw a couple of minor shortcomings that I hope Executive Software addresses in future updates:

  • The company needs to stay up-to-date with the latest Windows NT. Also, we need to lobby Microsoft to get the hooks permanently built into the kernel to make it easier for Executive Software to keep Diskeeper up-to-date and get out timely updates. Updates for Service Pack 3 are available from http://www.execsoft.com.
  • User-selectable logging levels would be useful. I don't like wading through hundreds (or initially thousands) of messages telling me which files Diskeeper defragmented, when I have more important messages in my Application log. You can do some selective logging with the filter option under Event Viewer, but selective logging for Diskeeper is a better option.
  • would like to be able to let Diskeeper run continuously until the fragmentation level drops below a certain percentage. Now I schedule Diskeeper to run for a few hours. Then I set it to run for another few hours until the fragmentation level has dropped. However, although you may have heard that the defragmentation process, even on a dual-Pentium system, is unobtrusive, it slows system performance. This slowing is especially noticeable when you are simultaneously defragmenting multiple drives on separate controllers. Diskeeper uses about 40% of both my CPUs to defragment a single drive, as you see in screen 3, which shows performance monitoring while Diskeeper defragments one of my partitions. Notice that the CPU utilization drops to near zero when I kill the active defragmentation process. This drop happens with more than 44 processes still running on my system. Therefore, I don't recommend running Diskeeper continuously on any production or heavily used system.

Diskeeper is a thoroughly implemented and superior product, and I have no reservations recommending it to anyone. Keep in mind that Diskeeper is updated every time Windows NT is updated, and be sure to read the readme.txt with the product.

Diskeeper for Windows NT Workstation
Executive Software * 800-829-6468
Web: http://www.execsoft.com
Price: $125 (US and Canada only); $219 (other countries)