Exchange 2013 processor sizing: virtual server edition

In a recent article I explained the process of sizing your processors for Exchange 2013. Hopefully I explained that process is a clear and understandable way, but there is something I left out. How do virtual servers affect this process? The answer, as always, is “it depends”.

The answer to this question starts with an explanation of what virtualization does, and more importantly does not do, for your servers. In the simplest terms, virtualization allows you to divide up the physical resources of your server among multiple operating system instances. What virtualization does not do, no matter how much you spend on your virtualization platform, is give you more resources than are available in the physical host. Some hypervisors will allow you to over-commit physical resources so that it appears your guest operating systems have more physical resources available than are actually there, but that is an illusion. I’m sure there are applications that live well in that sort of environment, but Exchange is not one of them.

I’m going to start a new paragraph to emphasize this point; Exchange does not function well in an environment where virtual server recourses are over-committed. I don’t want to sound too repetitive or condescending, but that is a super important point that far too many of my customers don’t seem to understand.

So with that understanding, the answer to the original question of how do virtual servers affect the resource requirements of an Exchange 2013 server is they don’t. When you go through the role requirements calculator and come up with resource requirements for your Exchange 2013 servers, those requirements are exactly the same for a virtual server as they are for a physical server. If the role requirements calculator says your Exchange server requires 2,940 megacycles then that is the number you need regardless of if you are deploying Exchange to a physical server or a virtual server.

In my original article on Exchange 2013 processor sizing I figured out the specific requirements for the Exchange 2013 server example I was using was 2,940 megacycles and my Hyper-V host had 5,120 megacycles available. That means I can run one Exchange 2013 server on that host.

What happens if my deployment plan calls for me to deploy two Exchange 2013 servers to that host? In that case you would need 5,880 megacycles while you have 5,120 available. Since what you need is less than what you have available, I would recommend you change your plan. There is nothing to stop you from deploying Exchange 2013 with less than the recommended resources available, but you run the risk of your Exchange environment not working very well. I’m not going to pretend I never deploy Exchange servers without making some compromises on the resources, but I can say that every time I do that I make sure to explain to the customer the risks involved, and ensure they have a plan to fix any problems that can arise from using resource constrained Exchange servers.

Back to the original question (again) the process I use to size processors for virtual Exchange servers is

  1. Calculate the resources you need for your Exchange 2013 server(s) via the role requirements calculator

  2. Calculate the resources available on your host server(s)

  3. Ensure your virtual Exchange server(s) have the resources they need statically dedicated to your Exchange virtual server(s)

In Hyper-V you can reserve a percentage of your host processor via the processor settings for each virtual machine.

I recommend you take that additional step to ensure your Exchange servers always have the resources they need.