RAM DISKS AND DISK CACHING CAN CLEARLY INCREASE NT PERFORMANCE
Okay, here's an easy trivia question: What's the slowest device in your
computer? No, it's not your fingers on the keyboard or your brain (those parts
belong to you, not your computer). The answer, of course, is your disk drive.
Think about it: Your disk drive spins around like a miniature washing machine
and employs little robot arms that spastically jump back and forth across the
surface of the medium to read and write your information. This spinning and
jumping are slow, mechanical processes that drag in comparison to the electronic
speed of memory and bus access.
Despite its lack of speed, your disk is a crucial component in your system.
Your disk contains the software programs you use and the information you
maintain. As an added bonus, Windows NT uses your disk as virtual memory. Disk
access is on the critical path of several NT functions, so anything you can do
to speed disk access results in real-life system performance improvements.
But how can you accelerate disk access? You certainly can't make the disk
spin quicker or the arms move faster. However, you can use two time-proven
methods to speed your disk access: RAM disks and disk caching. A RAM disk lets
you carve out a chunk of memory and use it like a disk drive (albeit an
incredibly fast disk drive), and disk caching keeps a copy of frequently
accessed information in RAM, where you can access it at electronic speed, not
mechanical speed.
Can these methods be effective in an NT environment? Let's look at two
products that implement RAM disks and disk caching--EEC Systems' SuperDisk-NT
and SuperCache-NT--and see whether they can improve performance in an NT system.
Cram That RAM
With a conventional RAM disk, a device driver grabs part of your memory at
boot time and uses that memory to emulate a disk drive. The size of the disk
drive the RAM disk emulates is equal to the amount of memory you're willing to
assign--for example, a RAM disk takes 10MB of RAM to emulate a 10MB disk. Once
your RAM disk is running, you can copy programs and files to the RAM disk and
run those programs or read those files from there. You typically copy these
files from your hard disk to the RAM disk as part of your logon script
processing.
Notice I said read those files, and not read/write those
files. One problem with a RAM disk is that it exists only in memory. If your
system loses power or NT crashes (hey, it happens), you lose everything in
memory, including everything on your RAM disk. For this reason, you rarely store
dynamic data on a RAM disk. EEC Systems' RAM disk implementation, SuperDisk-NT,
has an interesting and viable solution to this problem, RAM disk mirroring,
which posts RAM disk updates to a hard disk. But before we get to that, let's
look at SuperDisk-NT's basic operations.
You can download a zipped SuperDisk-NT file from EEC Systems' Web site.
When you do, you automatically receive a 30-day evaluation license via email. I
used SuperDisk-NT version 2.2.2 for my testing. After you download the file, you
extract the program files from the zipped file and run the setup program, which
copies the driver software to the NT driver directory and then runs the
licensing and configuration program (sdconfig).
As you see in Screen 1, sdconfig lets you configure the amount of memory
you want to allocate for your RAM disk (RamDisk-NT size). You must then reboot
your system before your new configuration takes effect. After rebooting, you
will have a new drive type in your My Computer container.
What's the performance advantage of using a RAM disk? The answer depends on
how many programs or how much of one application you can run off a RAM disk. In
my case, I copied Netscape Navigator 3.0 to my RAM disk and ran it from there
instead of my hard disk. My load time dropped from 20 seconds to 10 seconds,
which is pretty impressive considering Navigator still had to read most of its
configuration information (e.g., bookmarks, history files) from the hard disk. I
also noticed Navigator ran quicker on the RAM disk than from my hard disk,
because the RAM disk, instead of my hard disk, satisfied the DLL and plug-in
calls.
One SuperDisk-NT feature I was unable to test was its mirroring
capabilities (I did not have a disk partition small enough to match my available
memory). If you create a RAM disk the same size as one of your hard disk
partitions (FAT or NTFS), you can automatically mirror all the information on
that disk partition and automatically intercept reads and writes to that
partition. When you use the RAM disk in this capacity, the mirror disk assumes
the drive letter of the disk partition, so the mirroring is invisible to you and
your applications. The RAM disk, not the hard disk, satisfies all reads to the
mirrored partition and writes all changes through to the hard disk. This feature
is nice if you can spare enough RAM to mirror one of your partitions or if you
can create a partition small enough for your memory resources to mirror.
I found some minor, but annoying, problems with SuperDisk-NT. First, the
sdconfig program doesn't show you the current configuration settings when you
run it--it always displays default values. Therefore, you have no idea what the
current settings are unless you peek at the Registry. Second, getting sdconfig
to use a memory size other than the default size (24MB in my case, which was too
large to practically allocate for a RAM disk on my system) is tricky. If you're
not careful, you can end up allocating more memory than you intend to. EEC
Systems claims to have addressed these problems in its latest release, but I was
unable to verify this claim.
Are these problems enough to keep you from using SuperDisk-NT? I don't
think so, but they are enough to get on your nerves.
Cache as Cache Can
The second way of speeding disk access is disk caching. This method uses
memory to buffer reads and writes to your hard disk. Caching also includes some
predictive intelligence, so it can read more of the disk than your program asks
for. This scalability means information is already in memory when your program
asks. "But wait," I hear you say. "NT already does caching, so
why do I need another caching program?" NT caches operating system objects
and files. Unfortunately, NT caches lots of information that doesn't necessarily
enhance application performance, and you have little control over NT's caching
parameters. So if you want to cache your application-specific data, you can be
better off with a separate caching program.
As with SuperDisk-NT, you can download a zipped SuperCache-NT file from EEC
Systems' Web site. I downloaded and tested version 1.3.2. You can extract the
zipped file right away, but you have to wait for a 30-day license to arrive
separately via email--downloading the software automatically generates this
license as a by-product. After you extract the program files from the zipped
file, you run a setup program that copies the driver software to the NT driver
directory and then runs the licensing and configuration program (scconfig).
As you see in Screen 2, scconfig lets you configure which drive partition
you want to cache (SuperCache-NT supports both FAT and NTFS). You must then
reboot your system to put the new configuration into effect. After you reboot,
the SuperCache-NT service activates and intercepts read/write requests to the
hard disk partition you specified. As with all caching technology, the newly
created disk cache doesn't provide immediate benefit--you must wait until the
cache builds up to the point where it contains frequently accessed information.
I put SuperCache-NT through several mixed input and output tests. These
tests involved repeated movement of 20MB of files out of and into a directory on
the cached partition and random read/writes to one 20MB file on the cached
partition. SuperCache-NT reduced disk access time on my system by about 10
percent. This reduction might not seem dramatic, but it is a step in the right
direction. Let me caution you that you may experience better or worse
performance on your system using SuperCache-NT. The effectiveness of your cache
relates directly to how your programs perform disk input and output, so you just
have to see for yourself.
Unfortunately, SuperCache-NT has some important limitations. You can't use
it to cache your boot partition or to cache removable media such as Iomega's Zip
drives. These two limitations really restrict where you can deploy
SuperCache-NT. For example, I have no use for SuperCache-NT on my laptop because
I have one internal hard disk partition and one external Zip drive. Keep in mind
that the minimum requirement for SuperCache-NT is a system with two hard disk
partitions. (According to EEC Systems, the latest release allows caching of the
boot partition.)
As with SuperDisk-NT, I had my share of problems with SuperCache-NT. The
most serious one occurs if you ignore the warnings and configure SuperCache-NT
to cache your boot partition. In this case, your system won't come up again
after you reboot (it hangs during the blue screen load process). This problem
can be extremely serious if you don't have another way to boot your system and
access the NT file structure. I was fortunate to have another NT installation on
the disk, so I could boot the other copy of NT and go in and remove the driver
from my NTFS partition. I would have been in big trouble, and very angry, if I
had not had that safety net.
The version of SuperCache-NT I tested also had a serious bug that caused it
to hang my system if the memory available was less than the memory SuperCache-NT
calculated it needed to cache my partition. As a result, SuperCache-NT hung my
system with 32MB of RAM and a 2GB drive, but worked fine on a system with 64MB
of RAM and a 2GB drive. EEC Systems assures me it has fixed this problem in the
latest release.
Two less serious, but certainly annoying, problems stem from the
configuration program. As in the case of SuperDisk-NT, SuperCache-NT doesn't
show you the current settings for your cache environment; you always see the
default parameters. As a result, you have no easy way of telling whether
SuperCache-NT is even running. Because the configuration program doesn't tell
you, you have to go into the Devices applet in the Control Panel to learn
whether the SuperCache-NT service is running. Again, EEC says it has addressed
these problems in its latest release.
I find the problems associated with SuperCache-NT to be much more serious
than the problems I found with SuperDisk-NT. After all, you need to seriously
consider whether to use any software that can lock up your system during the
boot process. However, if you are an experienced systems administrator and are
prepared to recover from this problem, I encourage you to see what SuperCache-NT
can do in your environment.
Speed is Good
SuperDisk-NT and SuperCache-NT offer a means to improve disk access
performance. EEC Systems wrote both programs as multi-threaded drivers that can
take advantage of multi-processor environments. EEC Systems says its latest
releases of SuperDisk-NT and SuperCache-NT address all the problems I
encountered. On the bottom line, I encourage you to look at both products--just don't test them on production systems. Once you verify that they work with
your hardware configurations, you can deploy them in your production environment
without worry.
End of Article