In order to provide some performance guidance for the new Microsoft Exchange Server 2010 on VMware vSphere 4, a series of tests were run in the VMware labs. The first set of these tests involved a single Mailbox server VM that was scaled up from 1 vCPU to 8 vCPU with a range of memory sizes. This blog article will take a look at the results from these tests to understand how Exchange 2010 performs in a VM. Additional blog posts will look more closely at these 1 VM tests as well as another set of tests that used up to four mailbox VMs to test Exchange 2010 performance in a scale out model.
Configuration
The server used for the testing was a Dell PowerEdge R710 with two Intel Xeon X5570 quad-core processors and 96GB of RAM. An EMC Clariion CX4-960 storage array was used to provide Fibre Channel based storage. A development version of VMware vSphere 4 (build 235786) was installed and the VMs were created for the Exchange 2010 testing environment.
A new Windows Server 2008 R2 test domain was created for this testing. A separate VM was created for the Mailbox, CAS, and Hub Transport Exchange 2010 server roles. All three VMs were installed with Windows Server 2008 R2 x64 Enterprise Edition, added to the new Exchange 2010 test domain, and had the necessary prerequisites for Exchange 2010 installed. Once the Exchange server roles were installed, additional storage was added to the Mailbox Server VM. A couple of nine-disk RAID 5 LUNs were used for the mailbox databases and an eight-disk RAID 1/0 LUN was used for logs.
Microsoft ExchangeLoad Generator 2010 Beta (aka LoadGen) was used for this testing. This tool simulates Exchange 2010 users and can be highly customized if so desired. For these tests, the Very Heavy Outlook 2007 online profile with 100MB mailboxes was used. The defaults were taken for all other options. A separate server with Windows Server 2008 was also added to the Exchange 2010 test domain and used to run the LoadGen tests.
Testing
There is a nice sizing spreadsheet that Microsoft has provided for Exchange 2010 that gives a detailed recommendation once you plug in all the needed information. More simply, Microsoft has provided a basic memory sizing formula for Exchange 2010: 4GB + 3-30 MB per user. The results of this memory sizing formula reflect that email user types can vary quite a bit, and the amount of RAM needed to support them can also vary quite a bit:
Memory for Exchange 2010 in GB Based on Formula |
|||
Users |
Low |
Middle |
High |
1000 |
6.9 |
18.7 |
33.3 |
2000 |
9.9 |
33.3 |
62.6 |
4000 |
15.7 |
62.6 |
121.2 |
8000 |
27.4 |
121.2 |
238.4 |
Testing at various points in this range of memory sizes showed that the Very Heavy LoadGen profile with 100MB mailboxes, used in these tests, falls at the low end of the memory sizing guidelines. The following chart shows the results from scaling up the Mailbox VM with vCPUs and RAM as the number of LoadGen users was increased. The response times reported are the average from a 10 hour test run.
Performance remains very good as the number of users is increased from 1000 to 8000. The 95th percentile latency increases less than 150ms to a max of just under 300ms. There is a slight improvement in performance from 1 vCPU to 2 vCPUs, which is attributed to Exchange not being able to benefit from its multithreaded capabilities with 1 vCPU.
CPU utilization for these tests was low, with plenty of room for spikes in load. In the 8 vCPU and 4 vCPU cases, with 8000 and 4000 users respectively, there is ample CPU resource available. In these cases the same amount of load could be run with fewer vCPUs. The chart below shows the CPU utilization for the Mailbox Server VM as well as the CAS and Hub Transport.
In order to be able to plot the CPU utilization of VMs with different numbers of vCPUs assigned, each vCPU worth of compute power is represented by 100 on the chart. The chart goes up to 800 because the largest VM used was an 8vCPU VM. The ratio of CPU usage between the three roles remains the same across all tests with the Mailbox Server VM using about 2x the CAS VM and the CAS Server VM using about 2x the Hub Server VM. With 8000 users only 2vCPUs worth of processing was needed in the 8vCPU VM.
Conclusion
Exchange 2010 performed very well in tests running on VMware vSphere. In all tests run, the amount of RAM needed was at the low end of Microsoft’s guidance, CPU usage was low, and performance remained good.
Watch for the next blog post based on these tests which will look at the performance of Exchange 2010 disk I/O.