Figure 2.9 A view of logical processor to virtual processor mapping
Note that there is no concept of processor affinity in Hyper-V. You cannot force a
certain virtual processor always to map to the same logical processor. That could lead
to poor performance while waiting for the processor to be available, and it also breaks
the goal of abstracting the virtual resource from the physical resource.
SHOULD I TURN OFF HYPERTHREADING?
Hyperthreading causes no harm and may help performance—unless it pushes the
number of logical processors above 320, which is the maximum number
supported by Hyper-V. If hyperthreading results in more than 320, those logical
processors provided by hyperthreading could be used instead of physical cores by
the hypervisor. Therefore, if hyperthreading pushes the number of logical
processors above 320, turn it off in the servers’ BIOS/UEFI.
Virtual Processor to Logical Processor Scheduling
How a virtual machine’s virtual processors are assigned to logical processors for
computations is interesting. Consider the simplest possible scenario: a single virtual
processor on a virtual machine. When the virtual processor needs to perform a
computation, the hypervisor schedules the computation to an available logical
processor, as shown in Figure 2.10.