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 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.