Project Coconut Entries:
- Part 1 – Getting the environment up to scratch
- Part 2 – Sizing the Exchange Server 2007 servers
- Part 3 – Deploying the first Exchange Server 2007 server
- Part 4 – Configuring Standby Continuous Replication
- Part 5 – Its mailbox migration time!
- Part 6 – Finishing the job
Sizing the Exchange Server 2007 Servers
In this post in the Project Coconut series I’ll describe the process that was undertaken for sizing the hardware that will run the Exchange Server 2007 servers.
Microsoft provides extensive guidance on how to calculate your hardware requirements for Exchange Server 2007. If you are embarking on an Exchange Server 2007 project you should familiarise yourself with these resources.
- Planning processor configurations
- Planning memory configurations
- Planning storage configurations
- Mailbox Server role storage calculator
I certainly recommend you read the abovementioned resources, however here are some guidelines that I follow which outlining the bare minimum, recommended, and maximum configurations.
Note that CPU cores refer to modern, server class CPU cores (ie, not your 3 year old Pentium 4 desktop processor). Maximum figures represent the point at which you would consider adding more servers to continue scaling upwards. Although the maximum memory recommendations are below what 64-bit hardware and 64-bit Windows Server are capable of running, they represent the level at which adding more memory is not cost effective due to diminishing returns.
Client Access Server
Component | Recommendation |
CPU | Minimum 1 CPU core Recommended 4 CPU cores Maximum 4 CPU cores |
Memory | Minimum 2Gb Recommended at least 1Gb per CPU core Maximum 16Gb |
Storage | Separate volumes for operating system and application files |
Hub Transport Server
Component | Recommendation |
CPU | Minimum 1 CPU core Recommended 4 CPU cores Maximum 8 CPU cores |
Memory | Minimum 2Gb Recommended at least 1Gb per CPU core Maximum 16Gb |
Storage | Separate volumes for operating system, application files, and transport queue.At least 4Gb (RTM) or 500Mb (SP1) free space on transport queue volume to avoid back pressure issues. |
Mailbox Server
Component | Recommendation |
CPU | Minimum 4 CPU cores |
Memory | Minimum 2Gb Recommended at least 2Gb plus per-mailbox calculations Maximum 32Gb |
Storage | Separate volumes for operating system, application files, storage group transaction logs, and mailbox databases.Use the Exchange Server 2007 storage calculator for sizing Mailbox server storage |
As there are no Unified Messaging or Edge Transport servers involved in this project I have excluded them from this post.
Multi-Role Server
Although the above guidelines are fairly straight-forward, sizing a multi-role Exchange Server 2007 server is a slightly different story. The “Typical” installation of Exchange Server 2007 installs the Client Access, Hub Transport, and Mailbox server roles.
Component | Recommendation |
CPU | Minimum 1 CPU cores Recommended 4 CPU cores Maximum 4 CPU cores |
Memory | Minimum 4Gb Recommended at least 8Gb plus per-mailbox calculations Maximum 32Gb |
Storage | Separate volumes for operating system, application files, transport queue, storage group transaction logs, and mailbox databases.At least 4Gb (RTM) or 500Mb (SP1) free space on transport queue volume to avoid back pressure issues.Use the Exchange Server 2007 storage calculator for sizing Mailbox server storage |
Mailbox Server Memory Recommendations
In the tables above I mention “per-mailbox calculations” for servers that will hold the Mailbox Server role. What this means is that you plan for base amount of memory plus an amount of memory for each mailbox that will be hosted on the server.
The base amounts of memory are calculated using the Microsoft guidance here. Microsoft provides memory sizing guidance right up to the maximum (for Enterprise Edition) of 50 storage groups, but I will reproduce only the first few rows here.
# Storage Groups | Exchange 2007 RTM | Exchange 2007 SP1 |
1-4 | 2Gb | 2Gb |
5-8 | 4Gb | 4Gb |
9-12 | 6Gb | 5Gb |
13-16 | 8Gb | 6Gb |
Note that SP1 has some memory utilisation improvements as you scale to more storage groups compared to RTM.
In the case of Project Coconut we are planning for five storage groups, and using Exchange Server 2007 SP1, so the base memory amount is 4Gb.
To apply the per-mailbox memory sizing you use the following Microsoft guidance. Microsoft defines the different user types here.
User Type | Recommendation |
Light | Minimum of 2Gb plus 2Mb per mailbox |
Average | Minimum of 2Gb plus 3.5Mb per mailbox |
Heavy | Minimum of 2Gb plus 5Mb per mailbox |
For Project Coconut we have profiled the users as “Average”, and there are approximately 1000 of them. We also want to provide scalability up to around 1250 users. So, 1300 x 3.5Mb = 4550, divided by 1024 = 4.4Gb.
Base memory for a multi-roled server of 4Gb plus 4.4Gb for up to 1300 mailbox users and rounding it up to an even number brings us to a memory sizing of 9Gb. Both the production and standby servers will be provisioned with this amount of memory.
Storage Recommendations
The recommendations for most server roles are simple – separate the operating system from the application files, and on Hub Transport servers separate the Transport Queue from any other volumes if possible (this is more important in very large environments than it is in smaller environments).
For mailbox servers there is a lot more to consider, so have a read of my post on designing mailbox server storage.
In the next part of Project Coconut I’ll describe the process for introducing the first Exchange Server 2007 server into an existing organisation.
Pingback: Project Coconut: Part 4 - Configuring Standby Continuous Replication - The Capslock Assassin
Pingback: Project Coconut: Part 3 - Deploying the first Exchange Server 2007 server - The Capslock Assassin
Pingback: Project Coconut: Part 1 - Getting the environment up to scratch - The Capslock Assassin
Pingback: Project Coconut: An Exchange Server 2000 to 2007 Transition - Introduction - The Capslock Assassin