SQL Server 2008 and virtualization

By tom on March 20th, 2009

Recently I had the chance to play around with some virtual machines in a farm that was being used for stress tests. This design farm consists of 2 HP DL580 G5 machines with 4 quad-core CPU’s and 64GB memory, running ESX 3.5

I installed SQL 2008 on a vm (4vCPU, 8GB memory) and ran some benchmark tests. Some of the tests were performed when the farm was under heavy load, the other part of the tests were done while the virtualized SQL server could make full use of his given resources.

As you can see in the graph above, the number of transactions per second were quite good when the farm’s resources weren’t overcommitted, but this quickly degraded when the stress test was running.

The response times degrade also very quickly when available resources were overcommitted.

I am not against virtualizing SQL, but keep in mind that performance can quickly decrease when resources on the hosts are overcommitted. Try to test as much as possible, so you know how much workload your server can sustain in the worst case.

And if you have the option: ask to place your virtual SQL server in a farm where there is a QoS program, so that you are always sure that your server can make use of his full resources.

Please feel free to comment!