I talk to SQL Server users most days and the question I'm asked most often is always some variation of "How can I get more out of SQL Server for less money?" I tell users the secret to significantly reducing the cost of deploying SQL Server is simple: Stack instances.
Microsoft allows users to stack up to 50 instances per SQL Server database server. However, most SQL Server users only deploy 1 instance per server. That's okay if you only have 2 to 3 instances, but any more than that and you're wasting money. The users I talk to are typically deploying 20 to 100 instances, each on its own server, physical and/or virtual. If each of those instances were consuming 60% to 70% of its respective host server's CPU cycles, a 1-instance-per-server deployment model would be justified, but that's not the case. On average, most instances only consume 5% to 7% of its host's CPU power. That creates an opportunity to save big money.
Stack SQL Server Instances and Save Money
Let's see how much money can be saved stacking instances. Assume you have 50 instances, each hosted on its own server and each only consuming 10% of the host's CPU. Let's also assume that you want your database servers to have a CPU utilization buffer of 30%. This gives you a stacking ratio of 7 instances per server; put another way, it means you can reduce your database server count 84%, from 50 to 8.
Using a variation of the SQL Server per VM TCO model I shared previously, we can analyze the costs.
We input the number of SQL Server instances, which is 50. Next we input the stacking level: the number of instances per physical host. In this case we set the virtualization level to 7 because each instance consumes 10% of the server's CPU resources and we want 30% CPU utilization buffer. Then we enter the number of CPUs per host, the number of cores per CPU, and the number of years of support. In our example, those are 2, 8, and 3 respectively.
Next you input your SQL Server 2014 license and Software Assurance (SA) costs. For the purposes of the exercise I used the latest SQL Server 2014 SE list prices I had access to (which are subject to change). The model does the rest.
Over a 3-year period, stacking instances unlocks over $2.5M in "hidden" SQL Server license value. Factoring in additional savings from smaller hardware refreshes, software upgrades, and reduced admin costs makes the saving even bigger.
Why Don't Users Stack SQL Server Instances?
So why, if the economic value is so compelling, don't users aggressively stack instances? That will be the subject of my next post.