Recommended CPU & RAM for physical hypervisor node
-
Hello,
As IT team, we are planning to provide virtualization service based on XCP-NG.
Is there a general idea of the amount of physical server CPU and RAM that should be offered in response to a virtual server's CPU and RAM resource demand?
For example, when using a competitor virtualization product in the market, we usually proceeded as pCPU:vCPU = 1:3
The reason we want to understand this is that when customers come to us with the CPU & RAM of their virtual machines, we want to be able to recommend server models with the right specification.
Thank you.
-
@yzgulec there really isn't any hard-fast rules to aligning CPU to vCPU. A Guest is going to need cores to operate no matter what.
If you're trying to min-max your CPU utilization for a given system, you might want to target the guest to use between 70-80% of it's vCPU all of the time.
This is all a part of system tuning and is always a shifting target, as CPU is shared among all VMs and DOM0.
As you increase the number of guests on a host, the CPU consumption will be increased, which means you may need to scale back on the vCPU a given VM has.
-
@yzgulec
You might build your first pool using your existing rules (eg, pCPU:vCPU = 1:3). As business expands, you will gain experience that allows you to adjust your rules when building future pools. I would be interested in hearing what you find.Be sure to give the control domain (aka "dom0") enough RAM.
The hosts in a pool should all be the same - same CPU type, same number of cores, same amount of RAM, same number of network ports, and a consistent network design.
-
@Davidj-0 Thank you. Yes I will start with 3:1 and see how it would go.
-
@DustinB Yes I totally understand but I need to provide guidance for customer to select right CPU&RAM config for a physical node.
-
@yzgulec as people have rightly said above, no hard and fast rule. But when it comes to sizing compute for mixed workloads (or unknown workloads) I have used a 1:4 (pCPU:vCPU) contention ratio.
I also try and size 2GB of memory per vCPU (so 8GB RAM per pCPU), and with this 'rough guide' I find that my CPU and memory consumption scale nicely.
Obviously it gets difficult when someone has a workload that needs very low CPU but high memory (e.g. I've seen a 2-core VM with 64GB memory) and conversely high CPU and low relative memory (e.g. 8-core VM with 4GB RAM)... but these are typically exceptions.
Please share your decisions and build configs here, I'd be interested to see how it worked out in terms of compute:memory, costs, etc.