VMware recently published a whitepaper titled “Performance and Scalability of Microsoft SQL Server on VMware vSphere 4“ that demonstrates VMware vSphere 4.0 can virtualize large SQL Server deployments with excellent performance and scalability. The paper documents results for a resource intensive OLTP workload running against a SQL Server 2008 database on the Windows Server 2008 operating platform and highlights single-VM as well as multi-VM performance.
- In an 8vCPU virtual machine, we achieve OLTP throughput that is 86% of physical machine performance
- In consolidation experiments with multiple 2-vCPU virtual machines, aggregate throughput scales linearly until physical CPUs are saturated
Single-VM Performance Relative to Native
The table below summarizes the performance relative to the physical machine as we scale-up the vCPUs in a VM running our workload.
Number of Virtual CPUs |
Ratio to Native |
1 |
92% |
2 |
92% |
4 |
88% |
8 |
86% |
Metric |
Physical Machine |
Virtual Machine |
Throughput in transactions per second |
3557 |
3060 |
Disk I/O throughput (IOPS) |
29 K |
25.5 K |
Disk I/O latencies |
9 milliseconds |
8 milliseconds |
Network bandwidth receive Network bandwidth send |
11.8 Mb/s 123 Mb/s |
10 Mb/s 105 Mb/s send |
Multi-VM Performance and Scalability
Multiple SQL server VMs running a resource intensive OLTP workload can be consolidated to achieve excellent aggregate throughput with minimal performance impact to individual VMs. In the figure below, we plot the total throughput as we add eight 2-vCPU SQL Server VMs onto an 8-way host.
The cumulative throughput increases linearly as we add up to four virtual machines (eight vCPUs). As we over-commit the physical CPUs by increasing the number of VMs from four to six (factor of 1.5), the aggregate throughput increases by a factor of 1.4 Adding eight VMs to this saturates the physical CPUs on this host, yet ESX is able to utilize the few idle cycles to deliver 5% more throughput.