I am looking to replace 2 servers with one server and run the original servers as virtual machines. I am looking to use Windows Server 2016 as the hardware server and the VMs also running Windows Server 2016. I am wondering about the math that goes into the amount of memory and CPUs I need for each VM that the hardware server should have. Currently both servers run 8 CPUs and 48GB or RAM. I done some research and they are saying to have 4 extra cores besides each VM to run the hardware server. Many hardware manufacturers only look like I will be able to run 2 or 3 Virtual Servers on them. Is my math or understanding wrong or is there a rule of thumb to calculation the amount of CPUs and RAM to run virtual servers on a hardware server.
2Possible duplicate of Can you help me with my capacity planning?– Andrew SchulmanApr 11, 2018 at 15:06
@AndrewSchulman I would tend to agree but I am looking for some understanding or rule of thumb for replacing actual hardware with virtual based on the hardware specs only. Not load or usage.– JukEboXApr 11, 2018 at 15:12
The most important factor in this is not what resources the physical machines have but instead what they actually need. Depending on your performance requirement you can move between two extremes:
If you absolutely require the performance of the 8 physical cores, you must reserve an equal amount of cores in a virtualization host (and of course, have some left for the host OS). At that point, you also have to make sure that the virtual cores deliver a similar performance.
The other extreme is that you see you are on average have e.g. 5% CPU utilization. Then you could run 15-20 virtual machines on the same 8 physical cores (again with spares for the host OS) and expect on average similar performance (and a lot worse one if they happen to all peak at the same time).
In reality, you have to find a middle ground that makes sense for your specific application.
Similar calculations can be done for memory requirements.
Wouldn't running all those machines on 8 cores make them run EXTREMELY slow? Apr 12, 2018 at 0:25
Why should this be the case? The VM host will divide the CPU time between the VMs just like the kernel schedules time for many processes even on a single core. 5% utilization means the system is idle 95% of the time...– SvenApr 12, 2018 at 8:00
so if I am looking to run 2 8 core Servers with 48GB RAM each they can share the same CORES? Apr 12, 2018 at 12:51
Potentially yes, depending on the load pattern.– SvenApr 12, 2018 at 12:55
load is constant up to 25% to 50% and up to 75% based on day. Would that warrant giving each VM its own set of CPUs? Apr 12, 2018 at 18:02