Why can I only assign up to 25% of the CPU to my virtual machine? (under Virtual Server)

This is a question I get asked a fairly regularly.  The scenario is that the user is running Virtual Server on a 4 processor physical computer and is confused as to why they can only assign 25% of CPU resource to a virtual machine.  There are a couple of critical points to be aware of here:

1) A virtual machine can only utilize up to one whole physical processor for execution
2) The percentage displayed on the resource allocation page refers to total CPU resource for the physical machine

Hence 25% on a 4 processor physical computer == 100% on a uniprocesor physical computer == 1 physical processor.

What makes this a little more complicated is when you are running on a physical computer with hyper-threading capabilities.  Hyper-threading is a technology that essentially creates multiple logical processors for each physical processor.  When Virtual Server is running on top of a hyper-threaded computer each virtual machine can only utilize up to one whole logical processor.


Okay – I think I can see why I get asked this question all the time.  Did I mention that for optimal performance we recommend disabling hyper-threading for computers running Virtual Server?