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.

SuperDisk-NT
EEC Systems * 508-443-5106
Web: http://www.eecsys.com
Price: $133 (SuperDisk-NT); $133 (SuperCache-NT)