12 Tips to Optimize an Exchange 2007 Infrastructure (Part 1)

If you would like to be notified when Rui Silva releases the next part of this article series please sign up to the MSExchange.org Real time article update newsletter.

Introduction

Let’s face it: it is getting difficult to find tips that can improve overall system performance, when it matters for Exchange Server 2007. This last version of Exchange Server outperforms all its predecessors, since it can now take advantage of the x64 architecture in all its glory.

And if you ran the Exchange Best Practices Analyzer at the end of the installation process, the chances are that you end up with a pretty well tuned system that follows the recommendations from Microsoft and is ready to face the most demanding conditions.

The main goal of the provided tips will be the general optimization of the Exchange infrastructure, which means healthier, more stable and more reliable systems, as opposed to pure performance improvements.

As I did in a similar article for Exchange Server 2003, I would like to start with tip 0: size correctly! There is no way you can optimize a system that has not been correctly sized. I do not call this one a tip, it is a prerequisite, so do not ever, ever go on the adventure of deploying Exchange Server without any prior understanding of the basic hardware needs. A previous article I wrote, Exchange 2007 Sizing Cheat Sheet, can help you on that task.

And now, off with the talking, on with the tips.

1.  Document yourself

You do not have to be a messaging guru, but a deep knowledge of all the technologies involved in an Exchange Server environment will increase the possibilities that this same environment runs smoothly and is well optimized.

The Exchange Team is one of the most active inside Microsoft, documenting its product; there are literally tons of quality technical documents available on TechNet. These are just a few sites available 24×7 that can help you, besides many others all over the World and in so many different languages (I will assume that you are already familiar with MSExchange.org :-)):

Exchange Server TechCenter
Exchange Team Blog (You Had Me at EHLO)
Exchange Server Community
Exchange Server Wiki



2.  Run ExBPA Regularly

Running the Exchange Best Practices Analyzer (ExBPA) should be the first and final step of every Exchange Server setup process. Please, please do not skip it, because it will give you valuable information regarding your environment.

Once a separate tool you could freely download, the ExBPA is now included on the Exchange Server Toolbox, since it is so important for the overall health of Exchange servers. The tool collects data from several repositories, such as Active Directory, Registry and Operating System, and produces an extensive report with all the settings that do not conform to Microsoft best practices.

Run a Health Check regularly and keep ExBPA updated, by downloading the latest definitions from Microsoft.

3.  Optimize Storage

In previous Exchange Server versions, storage was often the root cause of performance bottlenecks. With the advent of Exchange Server 2007 and its ability to take advantage of x64 architectures, the need for large IO throughput is no longer so demanding.

Nevertheless there are a couple of best practices you should definitely follow that can affect Mailbox servers performance:

  • Size storage with the Exchange 2007 Mailbox Server Role Storage Requirements Calculator – sizing the storage for a Mailbox server is not rocket science, but it is far from being an easy process. Unless you are doing it for academic reasons, do not try to do the math by yourself, this is a great tool where some knowledgeable people have invested a lot of hard work and that will do the job for you.
  • Align the partitions – Depending on the storage, aligning partitions to track boundaries can have performance benefits. Your hardware vendor should provide you with pertinent information regarding the use of an alignment tool, but if they do not, use 64 sectors of 32KB. For more information, please read Disk Geometry and How to Align Exchange I/O with Storage Track Boundaries.
  • Partition Allocation Unit size – When formatting the volumes that will host Exchange databases, it is recommended to use a NTFS allocation unit size of 64KB. The recommendation of 64KB is based on the performance improvements seen with large sequential read operations, such as streaming backup and some eseutil tasks.
  • Review ESRP – Practically all the major storage vendors have published some guidance regarding storage configuration for Exchange Server. Most (or all) of these publications can be accessed through the Exchange Solution Reviewed Program (ESRP). There you will find the latest test results and guidelines from storage vendors that can really improve the health, performance and reliability of the storage subsystem.

4.  Tame your Backups

Exchange Server 2007 introduced many choices in the backup process. These are a few tips that can improve the overall backup experience:

  • When possible, always prefer VSS over streaming backups – There will be a plug-in for Windows Server Backup utility (to be released Summer 2008), the replacement for NTBackup, that will allow you to do Exchange VSS backups on Windows Server 2008.
  • If using LCR or CCR, backup from the passive node (SCR does not support backup from the target node), thus offloading the IO demand from the active node. When backing up from the passive, streaming backup cannot be used, only VSS.
  • If you are backing up from the passive node, activate Online Maintenance Checksum on the active node – The copy that is backed up is the copy that is checksummed, meaning that the active copy of the database will not go through the database integrity process. The Online Maintenance Checksum is controlled by the following registry key:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSExchangeIS\ParametersSystem
    DWORD Key: Online Maintenance Checksum
    DWORD Value: 1 (enabled), 0 (disabled)

  • Mind the online maintenance window – As in previous Exchange versions, the online maintenance and the backup process should not overlap in time. The event 703 should occur, at least, every 2 days for each mailbox database:
    Event Type: Information
    Event Source: ESE
    Event Category: Online Defragmentation
    Event ID: 703



    For more information please read Exchange 2007 SP1 ESE Changes – Part 2.
  • Use Data Protection Manager (DPM) 2007 – One of the many advantages is that you can offload the backup consistency checking from the Exchange server to the DPM server, thus reducing I/O impact of running eseutil on the Mailbox server during backup.


5.  Memory and Virtual Memory

In a 32-bit World, since the available memory had a 4GB limit, there was not much you could do to improve performance, besides setting the old /3GB switch. Fortunately, with the advent of the x64 architecture we can now address an (almost) unlimited amount of memory, which means the end of bottlenecks.

Exchange Server 2007 SP1 is pretty well tuned for memory utilization, but there are 2 tips I want to share: one regarding virtual memory settings, the other one more specific to Hub transport servers.

Over time, there has been confusing information regarding the correct size of the paging file (Microsoft literature included). At the time of the writing of this article, the official recommendation for Exchange server systems is:

  • If the server has less than 8 GB of RAM: amount of RAM times 1.5.
  • If the server has more than 8 GB of RAM: amount of RAM plus 10 MB.

If you have downloaded the latest update file for ExBPA, this is exactly what the tool will tell you.

Both minimum and maximum memory sizes should be set to the same value and the memory dump setting should be changed to “Kernel Memory Dump” (http://support.microsoft.com/?id=274598). If you have a dedicated drive to host the page file, you should configure a 100 MB page file on the system drive to accommodate the kernel dump.

The tip regarding the Hub Transport role has to do with the database cache size. Exchange 2007 SP1 (and earlier) has a default transport database cache size of 128MB. On Hub servers with high message rates, a higher value of the ESE cache can increase system performance. Since the transport service does not dynamically grow the ESE cache (unlike the Mailbox server role), the DatabaseMaxCacheSize parameter that is specified in the EdgeTransport.exe.config file should be increased to 512MB on Hub servers:

  • Current setting: <add key=”DatabaseMaxCacheSize” value=”134217728″ />
  • Recommended setting: <add key=”DatabaseMaxCacheSize” value=”536870912″ />

For more information, please read New maximum database cache size guidance for Exchange 2007 Hub Transport Server role.

6.  Use Outlook 2007

There is no doubt that Outlook 2007 and Exchange Server 2007 share a “Better Together” story. The following features are only available when you access an Exchange 2007 mailbox with Outlook 2007:

  • Autodiscover
  • Web-based Offline Address Book (OAB)
  • Availability Service
  • Resource Assistant
  • Unified Messaging
  • Improved Out of Office Assistant
  • Managed Folders
  • Increased Rules Limit
  • Partial Item Change Download
  • Message Classification

Another feature that was introduced with Exchange Server 2007 and works better with Outlook 2007 is RPC Client Throttling (or RPC Client Back-off). Client throttling allows Exchange to identify those users performing an excessive number of RPC operations against a Mailbox server, which could decrease overall system performance. The server will send a “back-off” request to these clients to reduce the performance effect on the server.

Outlook 2007 users receive a ropBackoff request, Outlook 2003 receive a status code of RPC_S_SERVER_TOO_BUSY. This means that the Outlook 2003 client gives up after 1 minute of successive back-offs and disconnects its session to the Exchange Server. For more information, please read Understanding Client Throttling.

As a Messaging Administrator, you have the power to enforce some settings that can improve general performance:

  • Make sure you install Service Pack 1 for Microsoft Office Outlook 2007, since this will fix some OST performance issues.
  • Force the use of Outlook cached mode:
  • Set-CasMailbox MailboxName –MAPIBlockOutlookNonCachedMode:$true
  • Prevent previous versions of Outlook from connecting, by modifying the Registry (KB288894) or by running the following cmdlet:
  • Set-CasMailbox MailboxName -MAPIBlockOutlookVersions:”-11.8010.8036”

Summary

This concludes part 1 of this series. As a takeaway, remember that good planning is often the key to good performance. Some of the tips, like good sizing and storage tuning fall into the planning stage, meaning that they should be done before taking those servers into production.

Know your servers, measure them, create a baseline and keep track of your environment, that is the only way of knowing you are heading the right direction.

Related Links

Microsoft Exchange Solution Reviewed Program (ESRP) – Storage v2.1
Planning Storage Configurations
Configuring, validating and monitoring your Exchange 2007 storage
What Needs to Be Protected in an Exchange Environment
Online Maintenance Database Scanning in Exchange 2007 SP1
Feature Comparison Between Outlook 2003, Office Outlook 2007, and Outlook Web Access 2007




If you would like to be notified when Rui Silva releases the next part of this article series please sign up to the MSExchange.org Real time article update newsletter.

About The Author

Leave a Comment

Your email address will not be published. Required fields are marked *

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Scroll to Top