Sql-server – Does SQL database perform significantly better on a dedicated machine vs Azure cloud

azurededicated-serverrackspacesql server

I'm looking into splitting our database server and application server and am evaluating offerings from Rackspace and Azure specifically around the database server. We are a Saas Web application and performance and capacity for future growth is what is important to us.

Rackspace have told me that it is important for performance to have a machine dedicated to SQL server and more importantly that there is no virtualisation layer between the OS and the HDD. ie. Another word for this is a "Bare Metal" configuration.

Azure evangelist has said that they have no problems running SQL Server on a virtual machine that is the sole tenant of the physical machine and that they have finely tuned this configuration to get much higher throughput (3-4x) than Rackspace would achieve through their virtualisation layer (VMWare apparently).

Azure are way cheaper and seem to have a better long term story in terms of scaling out the database easily. Am I going to achieve the performance gains I am after with the virtualisation layer in place? Who is telling the truth? Are there any performance stats or whitepapers where I can research or compare further.

Best Answer

Well, SQL runs horribly slowly on my 1993 Compaq PC (with a 33Mhz and 4 MB of RAM), but really well on an ESX guest VM with 8 vCPUs, 64 GB of RAM and an attached FC SAN for its disk.

So, it depends on the specs of your machines.

All else being equal, a database server on bare metal will outperform a virtualized one, but to what specific degree really depends on a myriad of configurations and usage patterns - of the machine, OS and SQL server itself (and you don't mention any of that). The only real way to get a precise answer is to do benchmarks, which seems like it's going to waste a lot of money to tell you want you already know - virtualized performance is worse to some degree, with the major determining factor being disk I/O. (This is where the 3-4x throughput number comes from - disk I/O can be 3-4x slower through a virtualization layer than through directly attached drives.)

How much that difference that makes really depends on what "performance gains," specifically, you need to get out of your database server. You don't say, so it's anyone's guess what your performance needs really are. Without solid performance metrics to analyze, it's not possible to say one way or the other. And whichever way you go, you'll really need those metrics if you want to build it right from the start.

As far as scalability, you can get pretty nice scalability for a SQL server out of a bare metal box these days, which might be something to take into consideration... I bet you could get a lot of I/O serving a database off of one of these, and if you properly spec out your base server model, you shouldn't have any problems adding additional CPUs or RAM or traditional discs/attached storage.

So really, it sounds like a lot more research on your part is order, at least as far as what your requirements (and monetary constraints) are before you settle on any solution.