Wednesday, March 29, 2006

Exchange Performance Tuning

Since I am an Exchange guy, here are some of my tips and links on how to squeeze all of the juice out of an Exchange 2003 Server. Note: before you make any changes, make sure that you have full backups of the system, have a stable environment, and test these changes on a non-production system before implementing. Here are just two ways to improve the performance of the Exchange Server.

Setting the /3gb switch

If the server is running Windows 2003 and Exchange 2003, and the server has more than 1gb of physical memory, then the server should be configured to allow better use of virtual memory.

  • Configure the Boot.ini to have the following settings:
    • /3GB /USERVA=3030

An example would be:

multi(0)disk(0)rdisk(0)partition(2)\WINNT="Microsoft Windows Server 2003" /fastdetect /3GB  /USERVA=3030

The /USERVA switch is new to Windows Server 2003 and provides better granularity for splitting memory allocations between user mode and kernel mode. This behavior lets you scale the server to a greater number of users without the risk of exhausting system resources. By using /USERVA=3030, an additional 42 megabytes (MB) of memory is allocated to the kernel for page table entries (PTEs). However, this value may need more tuning. You can monitor the PTE consumption by using Performance Monitor. The object to monitor is Free System Page Table Entries. If values that are less than 7000 are observed, the value of 3030 must be reduced because the system is unstable. If the value is less that 20,000, reduce the value in 64-MB steps until values that are greater than 20,000 are observed.” - http://support.microsoft.com/default.aspx?scid=kb;en-us;823440

Setting the HeapDeCommitFreeBlockThreshold

Using Regedt32, configure the “HeapDeCommitFreeBlockThreshold” value in the “HKLM/System/CurrentControlSet/Control/Session Manager/” registry key to be “0x00040000”

When memory is freed at a given address, the heap manager checks how many contiguous bytes are free around that address. After that check is complete, the heap manager can do one of two things:

Keep the contiguous memory block committed.

Decommit the contiguous memory block and mark it as reserved only.

The HeapDecommitFreeBlockThreshold registry key specifies the number of contiguous bytes above which the memory is decomitted (the second option) rather than retained for reuse (the first option).

On computers that have less than one gigabyte of RAM, do not use the HeapDecommitFreeBlockThreshold registry key unless intense memory fragmentation is occurring.” - http://support.microsoft.com/default.aspx?scid=kb;en-us;315407


Just by adding a couple of key modifications, you can increase your performance significantly. Here are some helpful links to increase performance, troubleshoot, and test the Exchange Server (and the environment).


Helpful Links:

Performance and Scalability Guide for Exchange Server 2003

http://www.microsoft.com/technet/prodtechnol/exchange/guides/E2k3Perf_ScalGuide/10be5826-45b2-48e7-8450-4ec8dd63beb0.mspx?mfr=true

Exchange Server 2003 Performance Tools

http://www.microsoft.com/technet/prodtechnol/exchange/guides/E2k3Perf_ScalGuide/10a935f2-cd76-4efa-967c-3f77657419b4.mspx?mfr=true

Optimizing Memory Usage in Exchange Server 2003

http://www.microsoft.com/technet/prodtechnol/exchange/guides/E2k3Perf_ScalGuide/aacaf4d8-a0c1-42d0-8eda-1c410177a7ce.mspx?mfr=true

No comments: