The following is Tip #4 from "25 Exchange 2003 Tips in 25 minutes." This content is excerpted from Scott Schnoll's book, "Microsoft Exchange Server 2003 Distilled," brought to you by © (2004) Pearson Education, Inc. Publishing as Addison-Wesley Professional.
Return to the main page for more tips on this topic.
Like other operating systems, Windows includes a process-wide heap manager that handles memory operations for all processes. Each time a process instantiates, a default heap (called the process heap) is created for that process. Programs or modules loaded in that process can also create additional heaps if needed. Exchange is one program that does this.
In Exchange 2000, each time the Exchange information store was started, the STORE.EXE process got its initial process heap. Then, a module loaded in the information store process -- ESE.DLL -- allocated four JET heaps for each processor present in the system. Although these heaps were separate pools of memory in the information store process, they were collectively referred to as the ESE multiheap. On a single CPU system, ESE allocated four JET heaps. On a dual CPU system, it allocated eight; on a quad system, it allocated sixteen; and so forth. When Exchange 2000 was installed on systems with four or more CPUs, it was found that the ESE multiheap caused excessive virtual memory consumption, which in turn led to performance problems. Ironically, the problem was worse on systems with a large amount of resources installed (multiple CPUs and multiple gigabytes of memory).
To correct this problem, Microsoft recommended that customers with large Exchange 2000 servers add the following registry entry to their systems.
Value: MPHeap parallelism
The value data setting depended on the number of CPUs present in the system, and if you
added or removed CPUs to the system in scale-up or scale-down procedures, you had to
manually readjust this setting. Exchange 2003 now automatically calculates the optimum
number of heaps to allocate based on the unique specifications of each system. Therefore,
you should remove the
MPHeap parallelism registry entry from Exchange 2000 servers prior to
upgrading to Exchange 2003.
Get more "25 Exchange 2003 Tips in 25 minutes." Return to the main page.
About the author: Scott Schnoll, an Expert on SearchExchange.com, is an MCT, MCSA and a long-time Microsoft Most Valuable Professional (MVP).
In addition to writing "Microsoft Exchange Server 2003 Distilled," he is a co-author of the upcoming "Exchange 2003 Resource Kit from Microsoft Press" and lead author for "Exchange 2000 Server: The Complete Reference."
Scott has written numerous articles for Exchange & Outlook Magazine, and is a regular speaker at Microsoft conferences, including MEC and TechEd, as well as industry conferences such as Comdex and MCP TechMentor, where he covers topics such as Exchange, clustering, Internet Information Services and security.