Extensible Storage Engine Heaps |
 |
By Scott Schnoll
19 Apr 2004 | SearchExchange.com |
 |


|
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.
Location: HKLM\Software\Microsoft\ESE98\Global\OS\Memory Value: MPHeap parallelism Type: REG_SZ
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.
');
// -->
|
 |
|
 |