The symptom: If you install more than 512 MB of RAM in a system running Windows 9x (that’s any version of Windows 95, 98, 98SE, or ME), you get weird out of memory errors.
The culprit is a bug in Windows 9x’s disk cache. The solution is to limit the cache to use 512MB of memory, or less, which is a good thing to do anyway. Here’s how.
Open c:\windows\system.ini in a text editor. Scroll down to the section titled VCACHE and add these two lines:
If you only have 1 GB of RAM, you may want to set MaxFileCache to 262144 instead.
In my book Optimizing Windows, I recommended you use 1/8 of available system RAM or 1024, whichever was smaller, for the MinFileCache, and 1/4 of available RAM or 16384, whichever was lower, for MaxFileCache. I think I found that 16384 was the point of diminishing returns, but keep in mind that at the time I had no more than 256 MB of RAM in any of my systems, and people thought I was nuts for putting that much in.
With that 1-2 GB of memory available, even if you set the maximum cache size to 512 MB, you’ll always have more memory available than I had when I wrote the book. So I guess there’s no real harm in it.
On a really slow machine–and by that I meant a 386 or a 486 CPU–I suggested setting both MinFileCache and MaxFileCache to 1/4 of available memory to save CPU cycles.
I hear people say today that Windows 9x doesn’t run well with any less than 512 MB of RAM, but I never ran any version of Windows 9x on a machine with that much memory in it. By the time it was affordable to put even 256 MB of RAM in a system, I was running Windows 2000 on everything. When I started my career, I supported desktops running Windows 95 with 16-24 MB of RAM in them. There may be certain programs you’re trying to run that don’t like having less than 512 MB of RAM, but the operating system itself is perfectly happy with 64-256 MB of RAM.
The other thing to check, if you’re experiencing poor performance, is the size of the disk. The FAT16 and FAT32 filesystems don’t deal all that well with large disks, and by large, we’re talking hundreds of gigabytes.
Tuning the VCACHE settings, in addition to eliminating the out of memory errors, improves performance. Sometimes Windows 9x didn’t make good decisions about how much memory to allocate to the disk cache versus what it allocated for applications, especially on low-memory systems. Setting some boundaries really helped, in those instances. And I suspect that those people who say their Win9x performance went through the roof after they upgraded beyond 512MB of RAM would have seen a similar benefit just from tweaking their VCACHE settings and partitioning their drives so their operating system and programs were on smaller volumes. I used to partition the C drive to 2 GB or less and format it FAT16 and install the operating system on that. That caused performance to go through the roof.
But as cheap as memory is these days, if putting a ton of RAM in a Windows 9x box makes you happy, go ahead and do it. Just don’t ask me how well it runs or doesn’t run. I have no reason to run anything older than Windows 7 anymore.
I don’t want to make a habit of writing about Windows 9x again, but I was sure I’d written about this in the past and I can’t find it. Since the topic does come up occasionally and Windows 95/98 qualifies as vintage computing to some people now, I figured I’d cover it.