Optimizing Exchange Memory Usage

How Exchange 2000 is like your two-year-old.

Bill: I inherited an Exchange 2000 server and I was curious on a couple of items. I'm an MCSA and this is my first Exchange box to administer. Is there a way to set the max memory size like there was in previous versions of Exchange? Currently, the STORE.EXE process is using 993MB out of 1.5GB of available RAM. I looked into this problem at support.microsoft.com and couldn't find an answer.

The other question is: What should the performance look like for this server with only 61 mailboxes. The server runs on a 1.8GHz Pentium 4 with 1.5GB of memory and a 100GB RAID-5 array. Currently, CPU usage is very low but memory usage sometimes totals 1.42GB. To me this seems very high. The server is also running DNS, chat and few minor programs.
—Matt

Get Help from Bill

Got a Windows or Exchange question or need troubleshooting help? Or maybe you want a better explanation than provided in the manuals? Describe your dilemma in an e-mail to Bill at mailto:[email protected]; the best questions get answered in this column.

When you send your questions, please include your full first and last name, location, certifications (if any) with your message. (If you prefer to remain anonymous, specify this in your message but submit the requested information for verification purposes.)

Matt: Don't let the high memory utilization of Exchange concern you. Memory tuning under Exchange happens automatically via Dynamic Buffer Allocation (DBA). If you've ever raised a toddler, you'll understand how the DBA lays claim to memory. It follows the "Rules of Two Year-Olds", which go like this:

  • If it's in my hands, it's mine.
  • If I like it, it's mine.
  • If it looks like mine, it's mine.
  • If I can take it away from you, it's mine.
  • If I had it a while ago, it's still mine.
  • If I'm doing or building something, all the pieces are mine.
  • If it's mine, it must never appear to be yours in any way.

Using these rules, the DBA eventually consumes nearly all available RAM. But if you were to introduce a new application, such as an anti-spam service or a fax service, then Exchange would cede memory over to that application over a period of time. See Micrsoft Knowledge Base article 815372, "How to Optimize Memory Usage in Exchange Server 2003," for more information about the DBA and memory handling.

Seeing that you have over 1GB of RAM on the server, it's also important that you set the /3GB switch in the Boot.ini file. This tells Exchange to use a different and more efficient method for assigning memory to file handles (a data structure called a PTE.)

Here's an example Boot.ini file with the switch:

[boot loader]
timeout=1
default=multi(0)disk(0)rdisk(0)partition(3)\WINNT
[operating systems]
multi(0)disk(0)rdisk(0)partition(3)\WINNT="Microsoft Windows 2000 Server"
/fastdetect /3GB

Hope this helps.

About the Author

Contributing Editor Bill Boswell, MCSE, is the principal of Bill Boswell Consulting, Inc. He's the author of Inside Windows Server 2003 and Learning Exchange Server 2003 both from Addison Wesley. Bill is also Redmond magazine's "Windows Insider" columnist and a speaker at MCP Magazine's TechMentor Conferences.

Featured