Why does Exchange recommend /3GB if you have more than 1GB of physical memory?

Raymond Chen

If you look through the Knowledge Base, you’ll see an article that say that Exchange 2000 requires the /3GB switch with more than 1 gigabyte of physical RAM. Yet I’ve been writing all this time that /3GB has nothing to do with physical RAM. What’s the deal? The title of the article could be a bit clearer. It really should be something more like “Exchange 2000 requires the /3GB switch to take advantage of more than 1 gigabyte of physical RAM”. It appears that Exchange 2000 doesn’t use the bank-switching technique I described in an earlier entry. (I don’t blame them. It’s extraordinarily cumbersome.) Consequently, for Exchange 2000, virtual address space equals virtual memory. The capacity of a program is typically a combination of multiple factors, the lowest of which sets the limit. By analogy, suppose you need two piece of bread, two pieces of bologna, and a slice of cheese to make a bologna and cheese sandwich. Whichever ingredient you run out of first determines how many sandwiches you can make. If you run out of cheese first, adding more bologna won’t help any. Okay, so what do bologna and cheese sandwiches have to do with Exchange 2000?

From the description in the article, it appears that the store.exe program is RAM-constrained most of the time (you run out of cheese first). But once you get the memory on the machine up to one gigabyte, you have excess RAM and address space becomes the new limiting factor. (You added plenty of cheese and now you’ve run out of bologna.) That’s where the /3GB switch comes in. It increases the user-mode address space, thereby relieving pressure on the address space constraint.