If you would like to read the other parts of this article series please go to:
- 15 Tips to Optimize an Exchange 2010 Infrastructure (Part 2)
- 15 Tips to Optimize an Exchange 2010 Infrastructure (Part 3)
Since its birth at 1996, Exchange Server has been one of the most successful products in history of Microsoft. One can argue the reasons behind this success, but there’s no doubt that, since the beginning, the Exchange Product Team has done a terrific job regarding functionality, interoperability, security, manageability and performance. Exchange Server is simply rock solid, period. But it keeps getting better and better… Which makes my work writing these tips a little bit more difficult, since I started this series of optimization articles with Exchange Server 2003.
In this article I’ll enumerate a series of tips and best practices, collected from several technical sources, gathered from the vast Exchange Community or simply an accumulation of notes to self from real situations in the field.
1. Thou Shalt Know Thy Product
Although the articles at MSExchange.org don’t get rated on the Microsoft scale 100-400, according to the technical knowledge required, I would classify this article, at least, as a level 200. This means that in order to correctly apply the information here exposed, there is expected to be a minimum level of technical knowledge about Exchange Server. And the deeper the knowledge about the product someone responsible for an Exchange infrastructure has, the better it will perform and will be less likely to suffer from downtime due to misconfigurations. And this is even true for those Organizations that completely outsource their IT systems.
I often get asked by people seeking to improve their Exchange Server knowledge what is the best way to achieve the desired level of expertise and what are the technical learning resources available. It is not an easy answer, just because there are so many resources available, most of them free.
Instructor led training and attending conferences and technical events are quite obvious ones. If you can’t afford attending Microsoft Tech.Ed, most of the content is available online at Channel 9.
And then, of course, there are lots and lots of places on the Internet where the technical community shares knowledge. Just to name a few:
- Exchange Server TechCenter
- Exchange Team Blog (aka You Had Me at EHLO)
- Exchange TechNet Wiki
- Exchange Server Webcasts and Podcasts
2. Planning and Deployment are Critical
Plan > Deploy > Operate, that’s the order, carved on stone, of the lifecycle of any Microsoft product (it applies to any product, really). So, first things first, and since we don’t want to skip any step, one should always start with the planning phase.
Thorough planning is crucial for the health of any Exchange Server infrastructure. It’s the time to make all critical decisions that will ultimately affect how the overall system behaves. Fortunately there are some amazing tools that significantly lower the risk of making bad decisions:
- Exchange Pre-Deployment Analyzer: The Exchange Pre-Deployment Analyzer performs an overall topology readiness scan of your environment and provides you with a list of decisions that need to be made before you deploy Exchange Server 2010.
- Exchange 2010 Mailbox Server Role Requirements Calculator: The mother of all planning tools, will assist you with sizing the hardware components of the most crucial Exchange Server role, the Mailbox Server (including multi-role servers).
- Exchange Server Jetstress 2010: Simulate disk I/O load on a test server running Exchange to verify the performance and stability of your disk subsystem before putting your server into a production environment
There are all kinds of things that can go wrong with deployment, from software bugs to misbehaved hardware, so the advice here is to go “by-the-book”. Follow exactly the design that came up from the deployment phase. Again, there are some neat tools and resources that provide huge help:
- Deployment Assistant: This tool asks a few questions about the current environment and then generates customized instructions to upgrade to Exchange 2010 on-premises or in the cloud.
- Install Guide Templates: Document templates you can use to create customized installation guides for your organization's Exchange Server 2010 server role installations.
- Exchange Tested solutions: In the Exchange 2010 Tested Solutions white papers, Microsoft and participating server and storage partners examine common customer scenarios and reveal key design decision points facing customers who plan to deploy Microsoft Exchange Server 2010. Examples of well-designed, cost-effective Exchange 2010 solutions deployed on tested hardware are available.
3. Performance & Scalability
There is no silver bullet to dramatically improve performance of an Exchange Server system. And there are a couple of reasons for that: first, Exchange Server does a pretty good job tuning itself and taking the most of the available hardware and second, there are so many components involved, hardware and software, that it is increasingly complex to improve general performance without affecting other parts of the infrastructure.
Nevertheless, here are a few recommendations:
- Sizing is the key to good performance. Read Exchange 2010 Sizing Cheat Sheet, Understanding Exchange Performance and use some of the many tools available to help you design the solution. The Exchange 2010 Mailbox Server Role Requirements Calculator is probably the best one.
- Partition Allocation Unit size for Mailbox servers – When formatting the volumes that will host Exchange databases, it is recommended the use of 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
- Disk defragmentation is supported, but not required nor recommended for Mailbox servers.
- Multi role servers: Actually multi role is not only supported, but encouraged by Microsoft. Start with the most simple (and cheaper) solution: multi-role servers with JBOD storage. Just make sure that your processor utilization isn’t over 39% (this is just a safe number, since CPU utilization for a single role should not exceed 80%).
- Network: Much of the network interface subsystem is tuned automatically. Server-based network adapters are capable of detecting the type and level of traffic passing through the network interface, and they self-tune to reflect this information. Ensure that the latest device drivers are maintained on the server.
- Hyperthreading should be disabled by default for production Exchange servers and only enabled if absolutely necessary as a temporary measure to increase CPU capacity until additional hardware can be obtained.
- Active Directory: The following table shows the recommended ratio of Exchange 2010 servers to Active Directory global catalog (GC) servers for each site containing Exchange 2010 Mailbox servers or users. Exchange will ignore Read Only Domain Controller (RODC) and will not connect to it, unless an administrator manually set it, so please make sure you don’t do any manual configuration to force this connection
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
Table 1: Global Catalog to Mailbox server core ratio
4. Compliance & Archiving
Rather than recommending a compliance and archiving strategy, the purpose of this tip is solely to focus on the performance issues of stubbing, the mechanism most (or all) 3rd party archiving solutions use to give the illusion of an infinite mailbox.
Stubbing refers to a process where a third-party archival product takes a large message and turns it into a smaller item, or stub. It typically does this by deleting the attachments and modifying the message body to be smaller.
Although stubbing made some sense to use with Exchange 2003 and older, recent Exchange Server versions have come up with the necessary mechanisms to use a different approach, like leveraging bigger mailboxes, providing archive mailboxes and configuring proper retention policies.
This is a purely a performance tip, as stubbing can have quite an impact on Exchange Server performance, particularly on Mailbox servers. So what’s the tip? Don’t use stubbing!
For further information on the topic, please read:
- Exchange, Stubbing, and Database Space Reclamation
- Archiving Questions: Do Tiered Storage and Stubbing make sense?
- Exchange 2010 Large Mailbox Vision Whitepaper
5. Tools, Tools, Tools
There are lots and lots of tools for Exchange Server available. The best place to find most of the tools is at the Exchange Server Wiki, which lists “tools that should be in every serious Exchange 2007 or 2010 administrator's toolkit”.
Here is a short selection from the vast collection available:
- Exchange Best Practices Analyzer: one of the bests, should be run regularly.
- Calendar Checking Tool for Outlook (CalCheck): checks Outlook Calendar for potential problems.
- Exchange Client Network Bandwidth Calculator: helps to predict network bandwidth requirements for a specific set of clients.
- Exchange Remote Connectivity Analyzer (ExRCA): provides a test system for administrators to use to validate external connectivity to Exchange.
- Microsoft Outlook Configuration Analyzer Tool (OCAT): provides a quick and easy method to analyze Outlook profiles for common configurations that cause problems.
- Microsoft Exchange PST Capture: discover and import PST files into Exchange Server or Exchange Online.
- Exchange Server Deployment Assistant (ExDeploy): generates custom instructions for moving your organization to Exchange 2010 or Office 365.
- MFCMAPI: provides access to MAPI stores through a GUI to facilitate investigation of Exchange and Outlook issues and to provide developers with a canonical sample for MAPI development.
- Microsoft Active Directory Topology Diagrammer: reads Active Directory configuration using LDAP, and automatically generates a Visio diagram of your Active Directory and/or Exchange topology.
- Microsoft Exchange 2010 Visio Stencil: contains a Microsoft Office Visio stencil with shapes for Microsoft Exchange Server 2010 and later.
- Exchange 2010 Architecture Report: this script collects information about an Exchange 2010 organization. It generates an output HTML report to present all the collected data. With this report you can see very quickly what is working and what is not.
There are also some good scripting resources I’d like to recommend:
- All-In-One Script Framework: All-In-One Script Framework is an automation script sample library for IT Professionals. The key value that All-In-One Script Framework is trying to deliver is Scenario-Focused Script Samples driven by IT Pros' real-world pains and needs.
This concludes part 1 of this series. There will be a total of 15 tips provided, so stay tuned for the next 10.
If you would like to read the other parts of this article series please go to: