Dig into a pirate's treasure of Registry gems to
maximize system performance
I guess you can say that I've always questioned authority. When I
hear, "Don't do that," my usual response is, "Why? What would
happen if I did ?" Although my questioning nature sometimes
frustrated my teachers (and perhaps contributed to a few gray hairs), such
rebelliousness has its virtues. Questioning authority--in this case,
Microsoft--has helped me discover new levels of system performance for Windows
NT.
Mutiny on the MS Bounty
I never heeded Microsoft's decree that NT is a completely self-optimizing
operating system, one that users don't need to tweak to achieve maximum
performance. "Just add more expensive hardware," said Microsoft, "and the promised land of faster performance will be yours." Bah! I knew there must be ways to improve NT's performance with my existing equipment. Remembering the significant performance increases I achieved by tweaking other Microsoft operating systems, I doubted that Microsoft's developers made NT so different that they removed every possibility for the user to enhance performance. I realized that I could no longer be a mild-mannered, obedient NT user; this job clearly required a Registry pirate. With this mindset, I donned my eye patch and sword (and Registry editor), and set sail for uncharted NT performance. In this article (and in future articles), I'll log the results of my expeditions.
Pirate's Rule #1:
Default Settings Equal Milquetoast Performance
The first thing any good NT performance pirate needs to know is that default
settings are usually not ideal. The good news about default settings is that
they work for most users. The bad news is that they don't give everyone the best
performance for a particular situation or application. After all, how can a
system be truly self-optimizing if it doesn't know how you're using it? Are your
applications disk bound, compute bound, or both? Does the amount of physical RAM
you have far exceed your typical working set (the amount of memory a process
uses or allocates), or are you running close to the edge? Do you want the
highest priority to go to foreground or background tasks, or do you want
execution spread evenly among all tasks? The answers to these questions
significantly affect NT's performance. Furthermore, if you haven't explicitly
told NT how you want the system conFigured, NT is automatically answering these
questions for you. If you're like me, you'll want more involvement in the
decision-making process.
Pirate's Rule #2:
The Best Buried Treasure Is in the Registry
Several Registry modifications play an important role in optimizing NT.
After you understand these buried gems, you can significantly alter your
system's performance. Some changes can substantially boost your system's overall
speed, but inappropriate changes can decrease performance. Therefore, as I
discuss each Registry modification, I'll provide enough information to help you
make intelligent decisions about each change and determine which changes are
appropriate for your situation. You need to be proficient in using NT's Registry
editors (REGEDT32.EXE and REGEDIT.EXE) and always be prepared for disaster,
which leads us to Pirate's Rule #3.
Pirate's Rule #3:
Smart Pirates Make Backups
Any modification to the system Registry, no matter how well documented or
well intentioned, always involves a certain degree of risk. Any of the Registry
modifications I discuss in this article can potentially damage your NT
installation or make it unbootable. Therefore, you need a full system backup and
an updated copy of the Emergency Repair Disk (use RDISK /S so that you get the
SAM and SECURITY Registry hives in addition to the usual information that the
RDISK utility backs up) before you make any changes to the Registry. I
recommend that you make an additional copy of the Registry using the REGBACK.EXE
utility from the Microsoft Windows NT Workstation Resource Kit
or Microsoft Windows NT Server Resource Kit CD-ROMs. If your boot
partition is a FAT volume accessible via an MS-DOS boot disk and the Registry
becomes corrupt or damaged, you can replace the damaged version in the
%SYSTEMROOT%\SYSTEM32\CONFIG folder with the uncompressed copy.
You can also restore a damaged Registry by using the option to "Press
spacebar now to invoke Hardware Profile/Last Known Good menu" during
NT's boot process, or by using NT Setup's option to "Repair a damaged
Windows NT installation" (which uses the information stored on the
Emergency Repair Disk to restore the system Registry). However, the ultimate
method of performing Registry backups and restores is to use a utility designed
specifically for that purpose, such as the ConfigSafe NT utility from imagine
LAN. This handy utility lets you make multiple backups of your system Registry
and dynamically restore your choice of versions if a problem occurs. One final
utility toolkit to consider is the set of NT tools available at the NT Internals
Web site (http://www.ntinternals.com and http://www.winternals.com). The
NTRecover utility is handy for doing dead-system recovery when your system won't
boot at all; another handy utility is NTFrob, which gives you an amazing level
of control over just about every aspect of NT's file cache.
Pirate's Rule #4:
The Proof Is in the Benchmark
One final rule to keep in mind: Do not conclude that a change is effective
or worthwhile until you've proved it with a benchmark. To determine the effect
of a particular change, use a benchmarking utility to gain both before and after
pictures of system performance. Also, remember to make only one change
at a time; then, reboot the system and test. Otherwise, you won't be able to
pinpoint the source of a performance improvement or degradation. I recommend two
complementary benchmarking utilities that serve different purposes. U Software's
Bench32 is a very effective NT and Windows 95 utility that measures CPU, memory,
disk, and video performance and compares them to a baseline system. BAPCo's
SYSmark for Windows NT 4.0 is a real-world application benchmark utility. Rather
than measuring raw throughput for I/O subsystems, this utility measures the
performance of several business applications, such as Microsoft's Word, Excel,
and PowerPoint. (For more information about these two benchmark utilities, visit
the U Software and BAPCo Web sites.)
First Stop: The Paging File
Let's begin our voyage by examining one of the most important contributing
factors to an NT system's overall performance: the disk subsystem. NT heavily
uses the paging file to swap program code and data from memory to disk and back.
NT's use of the paging file is significant even on systems with large amounts of
installed memory. Don't fall into the trap of believing that just because your
system has lots of available RAM, the paging file goes unused. It doesn't.
Although use of the paging file will certainly decrease, NT will continue to use
the paging file to swap system code, user code, and data between memory and
disk. Therefore, how well NT performs paging on a system is extremely important.
Even systems with fast CPUs and lots of memory will suffer from a non-optimized
paging file.