Scaling Up vs Scaling Out Exchange Server 2007 Roles Part 3 – Mailbox Servers
Written by Paul Cunningham on December 11, 2009
In part 1 of this series I wrote about scaling Transport servers, and in part 2 I wrote about scaling Client Access servers. In this third and final post in the series I will look at scaling of Mailbox servers.
Mailbox Servers
The role of the Mailbox server for Exchange Server 2007 is to host the mailbox and public folder databases for the organization. In other words this is where all of the email, calendar, and other Exchange data is stored.
The Mailbox server accepts direct MAPI connections from Microsoft Outlook clients, but also receives other connections such as Outlook Web Access and ActiveSync via the Client Access server.
As the backend of the Exchange system the Mailbox server is usually located on the most powerful hardware and is often configured for high availability. Because of the direct client access to the Mailbox server any performance problem is likely to be noticed immediately by end users, unlike say the Hub Transport server that may deliver mail slowly during periods of poor performance but this may actually go unnoticed by the users.
As an organization sends and receives email throughout the day the Mailbox server processes these transactions in its databases. This means that careful attention needs to be paid to the disk performance of the Mailbox server, but attention also needs to be given to the processor and memory.
Processor Scaling
A Mailbox server can function with a single processor core but it is recommended to start with at least 4 cores. For average email users a ratio of 1 core per 1000 users is appropriate, but for heavy users this decreases to 1 core per 750 users.
Because a Mailbox server may also be configured with one of the Exchange Server 2007 database replication features, or may host other roles as well, some additional factors should be considered. When LCR is used the ration of processor cores to mailbox users decreases by 20% (ie 1:800 for average users). Also, if multiple roles are deployed on the server the ratio also decreases by 20%.
As you can see combining LCR with a multi-role server will increase the processor requirements for a given number of users by a significant amount.
A single Mailbox server can scale up to 12 processor cores if necessary. Beyond that the performance gain of adding more cores is greatly diminished. If processor bottlenecks are found with 12 cores it is time to scale out to more Mailbox servers.
The exception to this limit is once again for multi-role servers. A multi-role Mailbox server can scale up to only 6 processor cores. To gain more processor scalability you can deploy the Client Access and Hub Transport roles to a separate server and make the Mailbox server dedicated to that role.
Memory Scaling
The minimum recommended memory for a Mailbox server is 2Gb, but the true minimum actually depends on the number of storage groups that are being deployed. 2Gb is suitable for a single storage group. Enterprise Edition of Exchange Server 2007 can have up to 50 storage groups, which has a recommended minimum of 15Gb memory.
After the minimum memory for the storage groups is determined you must then add more memory depending on the number of mailbox users. The amount depends on the type of user (eg light, average, heavy) and some third party products (such as Blackberry Enterprise Server, which increases Mailbox server utilization for the BES users). Generally speaking 3.5Mb per mailbox user can be used, but if the organization is mostly heavy email users then 5Mb per mailbox user is used.
As an example, an organization planning to deploy 10 storage groups with 200 average users per storage group would need 5Gb + (2000 x 3.5Mb) = 12Gb memory. This could easily then be increased to 16Gb just to cover off risk or unexpected growth.
Mailbox servers, whether they be dedicated role or multi-role, can scale up to 32Gb of memory. If memory is still a bottleneck at 32Gb it is time to deploy more Mailbox servers.
Disk Scaling
The Mailbox server relies more heavily on disk performance than any other Exchange Server 2007 role. Fast disk write access is important for transaction logs, and fast disk read access is important for databases.
Most larger organizations will deploy Mailbox servers with fast fibre-attached SAN storage, although iSCSI or internal storage can also do the job if sized correctly.
The key to sizing Mailbox server storage is to scale to the IOPS (Input/Output Per Second) requirements first, and the capacity (ie gigabytes of space) requirements second. IOPS capacity is dependent on the number of disk spindles that make up a RAID group. In other words, if 200Gb of space is required you may still ultimately provision 500Gb of space to ensure enough disk spindles exist in the volume to deliver the IOPS that is required.
Mailbox server disks can theoretically scale up well beyond what any company will actually need (or be able to achieve). Each database has a maximum size of 16 terabytes, and there are a maximum of 50 databases per Mailbox server. This is 800 terabytes of database storage alone, plus at least 25% for transaction logs, plus another 120% per database volume for overhead and maintenance tasks.
However for performance and recoverability reasons databases are not recommended to exceed 100Gb for single servers, and 200Gb for CCR clusters. This brings the maximum storage down to more like 10 terabytes for databases, plus the other factors mentioned above.
Scaling Impacts
When an organization considers scaling out to more than one Mailbox server they usually consider deploying clustered Mailbox servers to introduce high availability for this important role.
Because the Mailbox server holds all of the important data as it scales upwards or outwards the capacity of other systems such as backups and archiving also need to be kept in mind.


