Here are some excellent resources on how a hypervisor such as Hyper-V interacts with the CPU pipeline.
- Brian Ehlert: I.T. Proctology Blog: Hypervisor virtualization basics a visual representation
- Excellent short videos giving a visual presentation of hypervisor platform interaction with physical hardware
- TechNet Wiki: Hyper-V Concepts – vCPU (Virtual Processor)
- A great set of resources with links to various articles
- TechNet Forums: Logical Processors assignment (answered by Brian Elhert)
- Petri: Aidan Finn: Using Hyper-V Virtual Machine Processor Resource Control
- Gives a bit more depth to Brian’s video explanation of resource control
Essentially, having a bit of time while waiting for some things to complete I’ve done a bit of digging to figure out if the premise “All VM threads (vCPUs) must be processed in parallel” still applies to the CPU pipelines and architectures of today.
Check out the conversation I’ve been having with Brian Elhert on his blog with the videos as it seems that the premise no longer holds true.
There are other VM performance thoughts that we have had since day one that need to be tested or verified based on Brian’s responses.
In our experience the following can have an impact on a VM’s performance:
- Assigning more vCPUs to a VM than physical cores (threads) available on one CPU
- Assigning vCPU count to a VM as the number of physical cores (threads) on one CPU
- Assigning enough vRAM to a VM to force its contents to be split between memory controllers
Further reading on tuning Windows Server 2012 R2:
Microsoft Cluster MVP
Co-Author: SBS 2008 Blueprint Book
Chef de partie in the SMBKitchen ASP Project
Find out more at
Third Tier: Enterprise Solutions for Small Business