unRAID dedicated core
Couple of things, applies not just to unRAID:
- Hypervisors (virtual hosts) don't distinguish cores vs threads when assigning resources to VMs. You give them vCPUs and the hypervisor will manage the required CPU demand and gives the VM what it needs when it needs it. This is a basic explanation but you don't give a core or thread to a VM specifically, as in you don't give it 2 cores and 1 thread you give it 3 vCPUs and where the vCPUs run is up to the hypervisor.
- You can override the above behavior and do specific assignments but this is generally advised against as more often than not it isn't required to be done and you'll do a worse job than the hypersior can do balancing the load itself.
- Over provisioning cores is completely normal for servers, typically between 2:1 to 8:1 or even higher in rare and very specific cases. The majority of games don't use all the CPU power available so it is possible to assign say 8 vCPUs to two VMs on a 4c/8t system, however there are other factors to consider (explanation below).
Hypervisor CPU cycle scheduling:
One of the roles a hypervisor has to do, the most important role, is to managed the CPU resources of the physical system for use by itself and any active virtual machines. Each provisioned and active (powered on) virtual machine has a configured vCPU amount and these need to be scheduled to pCPU threads all at once, the more vCPUs assigned the harder it is to schedule pCPU time for the VM. Even if the VM is very idle and is only doing small background OS tasks if you give the VM 6 vCPUs the hypervisor must give it 6 pCPU threads even if only 1 vCPU is active within the VM, there are no half measures it's all or nothing.
There are two main reasons why over provisioning of CPU resources works in server environments:
- Most servers are idle the majority of the time and rarely go above 40% CPU
- Virtual machines only get assigned a fraction of the total CPU resources
These two reasons mean even though you might assign 32 vCPUs in total across all VMs on the host which only has 8 pCPU threads no VM is left starved for CPU time and everything runs nice and smoothly.
Where this starts to break down is when you assign too many VMs too many vCPUs or when VMs start to consistently demand full utilization of their vCPUs, 100% guest VM activity. This is why the advice is to only assign the number of vCPUs that is actually required, start with less not more if unknown. By over sizing your VMs you will actually get less performance in the individual VM itself which then also means EVERY other VM on the host will have less performance, don't pee in the pool
.
What does this mean for you? Well you could assign all 8 pCPUs to two VMs and most of the time this would work well, where it wouldn't would be in CPU demanding games or when rendering. You could give 1 VM 8 vCPUs and the other VM 4vCPUs, or 7 vCPU and 4 vCPU, or any combination that you think is right and tested/benchmarked to confirm
In saying this what I would actually recommend is getting used parts and build a cheap secondary system, older generation Intel CPUs are still amazingly good and go for very low prices. You can even get the Xeon equivalent part to the desktop model for less and use it in a standard motherboard and normal RAM. With this you get predictable and stable performance for both users at a reasonable price and when not in use you can shut down the secondary system.
Desktop virtualization for home users doesn't generally work all that well due to the low number of CPU threads that can be assigned and usability/compatibility issues that are a real issue. It's not as simple as the videos Linus made makes out and you cannot guarantee stability/compatibility now and in to the future, one small change by Intel/AMD/Nvidia/PCIe/USB could stop unRAID being able to do what you want it to. This could come in the form of any product or technology update meaning for example you couldn't upgraded to the latest GPU as it doesn't work that way anymore, unlikely but never a problem in a dedicated system (without something like AGP to PCIe technology transition).

Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now