Here are some points on how we configure our physical Hyper-V hosts:
- Hyper-Threading is disabled.
- Logical “cores” will not help with performance where the CPU will still need to juggle between physical and virtual cores (the Hyper-Thread).
- TurboBoost is disabled.
- 2 or more vCPU threads must be processed simultaneously. TurboBoost throws the core speeds out of sync with each other.
- See: MPECS Inc. Blog: Hyper-V CLOCK_WATCHDOG_TIMEOUT Error Within 24 Hours On Fresh H-V 2K8 R2
- SpeedStep and Wait States are disabled.
- See Hyper-Threading.
- Cooling Profile: Set to Maximum Performance
- We may pay a few pennies more for not bringing things down with all of these settings but our priority is the stability of our systems plus their instantly available performance characteristics.
Now, for the virtual machines we need to keep the following in mind as far as a rule of thumb in our SMB/SME space:
- Number of Physical Cores on one CPU = Maximum Number of vCPUs.
- Amount of RAM on one CPU –1GB = Maximum RAM assigned to 1 VM.
- A vCPU = a Thread to the physical CPU.
- Multiple vCPUs = multiple threads to the physical CPU.
- All Hyper-V vCPU threads must be processed simultaneously by the CPU physical Cores.
- Therefore: Performance is impacted if more vCPUs/Threads are assigned to 1 VM than physical cores are available on 1 physical CPU.
This subject is a bit more tricky since the information that we can gather on NUMA spanning is quite limited in scope. From what we can tell, the number of NUMA Nodes depends on the number of memory controllers in the system or on the CPU.
- Rule of Thumb: Assign RAM associated with 1 physical CPU – 1GB to VM.
- If there is more than 1 NUMA node per CPU then factor in RAM assignments accordingly.
Given the above we can surmise that:
- A VM will perform at its best if the number of vCPUs assigned to it equals or is less than the number of physical cores on one CPU.
Any time the physical server needs to juggle threads across CPUs or fetch memory content from other NUMA Nodes or RAM managed by another CPU’s memory we run into performance hits.
Microsoft Small Business Specialists
Co-Author: SBS 2008 Blueprint Book