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

by [Published on 11 Sept. 2008 / Last Updated on 11 Sept. 2008]

last 6 tips (out of 12) that can contribute to a better optimized Exchange 2007 environment, making it healthier, more stable, more secure, and more reliable.

If you missed the previous article in this series please read 12 Tips to Optimize an Exchange 2007 Infrastructure (Part 1).

7.  Network Tweaks

At the network level, there are a couple of tweaks you can do in order to make things run smoother:

  • Disable Windows 2003 Scalable Network Pack (SNP) ¨C SNP was introduced as a means of accelerating the network stack. Unfortunately it has some issues with Exchange (please read Windows 2003 Scalable Networking pack and its possible effects on Exchange). In order to turn off all SNP features, follow the guidelines from KB948496. SNP is disabled by default on Windows Server 2008.
  • Disable IPv6 in Windows Server 2008 ¨C Although IPv6 support is one of the great features of Windows Server 2008, it has some known issues with Exchange Server 2007. For instance, it can break Outlook Anywhere. So, if you do not really need IPv6, disable it:

  1. Uncheck Internet Protocol Version 6 (TCP/IPv6) in connection Properties
  2. Remove "::1     localhost¡± from the HOSTS file
  3. Open Registry and navigate to HKLM\System\CCS\Services\Tcpip6\Parameters
  4. Create a DWORD (32-bit) named DisabledComponents and enter 0xFFFFFFFF (this will disable all IPv6 components, except the IPv6 loopback interface)
  5. Reboot
  • Disable TCP auto-tuning in Windows Server 2008 ¨C Auto-tuning is a feature that was introduced with Windows Vista and Windows Server 2008 in order to optimize TCP throughput. The problem is that some network devices do not support these features (most Cisco Firewall devices, Sonicwall Firewall, Check Point Firewall, some NG R55 routers, some Netgear routers), which can make things slower. To disable auto-tuning, run the following command:

    netsh interface tcp set global autotuninglevel=disabled

8.  Install Exchange on Windows 2008 Servers

The second Better Together story from this article is with Windows Server 2008 (the first one was with Outlook 2007).

There are many improvements in Windows 2008 that directly benefit Exchange 2007, such as:

  • Support for multi-subnet failover clusters ¨C With Windows 2003 you had to stretch the local subnet for geographically dispersed clusters. With Windows Server 2008 you can have CCR and SCC clusters across 2 different subnets.
  • SMBv2 increases file copy performance ¨C This mean faster log shipping. Since CCR and SCR use the SMB protocol to copy files, with Windows Server 2008 you gain up to 40% in file copy throughput.
  • Reduced downtime for hardware maintenance ¨C Windows Server 2008 enables a variety of core hardware components to be added, removed or replaced without requiring system downtime (requires capable hardware).
  • Near-zero downtime when fixing NTFS issues ¨C Windows Server 2008 includes self-healing NTFS, which corrects corruptions of an NTFS file system while the system is online, and without requiring Chkdsk to be run offline.
  • Greater scalability for Outlook Anywhere ¨C The RPC Proxy Service now supports per-IP address connection-limits, up to a maximum of 65,535 connections per IP address. Windows Server 2003 supports a maximum of 65,535 connections, regardless of the number of IP addresses assigned to the server.
  • Integrated Exchange-prerequisites ¨C Faster deployment. Windows Server 2008 includes Exchange 2007 installation dependencies: Microsoft Management Console (MMC) 3.0, Windows PowerShell, and .NET Framework 2.0.

Please remember that the installation of Exchange Server 2007 RTM on Windows Server 2008 is not supported, you will need SP1.

For more information, please read Exchange Server and Windows Server 2008, Part II.

9.  QoS with UM

The use of Quality of Service (QoS) and DiffServ can greatly improve the Unified Messaging experience. If you are experiencing UM problems related with network conditions, you should definitely try QoS. Support for Differentiated Services (DiffServ) QoS was added in SP1.

In order to enable QoS by using DiffServ, follow these steps:

  1. Run GPEdit.msc on the UM server.
  2. Expand Computer Configuration | Administrative Templates | Network | QoS Packet Scheduler |  DSCP value of conforming packets.

Figure 1:
Local Group Policy MMC

  1. On the right pane, double-click Controlled load service type, click Enabled, set DSCP value to 34, click OK.

Figure 2:
Controlled load service Properties

  1. Double-click Guaranteed service type, click Enabled, set DSCP value to 46, click OK.
  2. Install the QoS Packet Scheduler on the UM server (QoS Packet Scheduler can be installed by adding it as a Network Service on the properties of a network connection in Windows Server 2003. The QoS Packet Scheduler is installed by default on Windows Server 2008).

Figure 3: Network Properties

For more information, read New Unified Messaging Features in Exchange 2007 SP1.

10.  Start PowerShell faster

If you ever clicked the Exchange Management Shell icon (I am sure you did), you know that it can take a while before the window pops up. This pretty long delay is due to the compilation of Common Intermediate Language (CIL) to native code that is happening in the background.

If you want to speed up the launch time a little bit, follow these steps:

  1. Using Notepad, create a .PS1 file (name it Update-GAC.ps1) with the following code (on x86 systems, replace Framework64 in the second line of this script with Framework):

    Set-Alias ngen @(
    dir (join-path ${env:\windir} "Microsoft.NET\Framework64") ngen.exe -recurse |
    sort -descending lastwritetime)[0].fullName
    [appdomain]::currentdomain.getassemblies() | %{ngen $_.location}
  2. Start the Exchange Management Shell and run the previously created script.
  3. Close the Exchange Management Shell window and start it again. Notice the difference!

For more information, please read Avoiding Jitter: Jumpstarting the Exchange shell.

11.  Proactively Monitor the Exchange Environment

Exchange Server is definitely not a ¡°set it and forget it¡± solution. Like every other mission critical application you need to proactively monitor it, in order to assure the proper operation of the whole Exchange infrastructure and all its dependencies, to identify potential problems and to detect performance degradations before they turn into downtime.

Although you can use any 3rd party management solution, I strongly recommend you use System Center Operations Manager (OpsMgr) 2007, which includes the Exchange Server 2007 Management Pack.

The Exchange Server 2007 Management Pack for Operations Manager 2007 includes an extensive set of rules, views, knowledge, monitors and reports for managing Exchange Server 2007. These resources help you keep your Exchange Server 2007 environment in a healthy state, by detecting, sending alerts, and automatically responding to critical events, thus preventing possible service outages or configuration problems.

The following table provides an overview of the monitoring functionality that is enabled through Operations Manager 2007 (taken from the Exchange Server 2007 Management Pack Guide):

Exchange component

Monitoring functionality

Exchange Client Access

  • ActiveSync and OWA connectivity monitoring including synthetic transactions
  • Performance measuring and alerting

Exchange Edge Transport

  • Performance measuring and alerting

Exchange Hub Transport

  • Performance measuring and alerting

Exchange Mailbox

  • Information Store monitoring
  • Mailflow and MAPI connectivity monitoring
  • Performance measuring and alerting

Exchange Unified Messaging

  • Unified Messaging connectivity monitoring including synthetic transactions
  • Performance measuring and alerting

Configuration and Security

  • Exchange best practices

Exchange Event Log monitoring

  • Comprehensive rules for Exchange
  • Detailed product knowledge about events

12.  Active Directory

Exchange Server strongly depends on the Active Directory infrastructure. Although Exchange does a good job of load balancing its requests across the domain controllers, including taking into account how busy the DCs are, it is a demanding application and will present relatively high load across all the GCs available in the site if you are taking full advantage of all the new features and roles in Exchange 2007.

The following table shows the recommended ratio of Exchange 2007 servers to Active Directory global catalog (GC) servers for each site containing Exchange 2007 Mailbox servers or users (assuming that the DCs and the Exchange Mailbox servers are both on roughly equivalent hardware):




GC:Mailbox server core ratio



You must have enough memory installed on the directory server to cache the entire Active Directory database (NTDS.DIT) in memory

1 GC near
XX users

Every 10,000 users

Every 20,000 users

I would like to add a final note regarding Windows Server 2008 Domain Controller/Global Catalogs. Windows 2008 introduced a new role, Read Only Domain Controller (RODC), that does not work with Exchange. Exchange will ignore RODC and will not connect to it, unless an administrator manually sets it, so please make sure you do not do any manual configuration to force this connection.


These tips were not exclusively about performance, they were mainly about optimization, which means healthier, more stable, and more reliable systems.

Please bear in mind that some of the present recommendations may change in the future, as new service packs, service releases or new versions of the products see daylight. The best thing to do to make sure you are not using some deprecated recommendations is to follow tips #1 and #2:

Related Links

If you missed the previous article in this series please read 12 Tips to Optimize an Exchange 2007 Infrastructure (Part 1).


Featured Links