Database Reference
In-Depth Information
operating system can more efficiently schedule operations against the logical
processors. When one logical core is not being used, the other processor is able to
leverage the underlying resources, and vice versa.
Note
IBM had simultaneous multithreading as early as the 1960s:
http://en.wikipedia.org/wiki/Simultaneous_multithreading .
In a vSphere environment, this provides the Scheduler more logical CPUs to schedule
against, thus increasing throughput. This allows for concurrent execution of instructions
from two different threads to run on the same core. This is not a doubling of throughput,
and the amount increase varies depending on the processor, workload, and sometimes
which way the wind is blowing.
HTT is enabled in the BIOS of the physical server, so double-check with your server
manufacturer on validating if this feature is turned on for your hardware. HTT is
enabled by default on ESXi. The VMkernel, which is responsible for the scheduling,
will do its best to schedule a multi-vCPU virtual machine on two or more different
cores. The VMkernel will attempt to spread this as wide as possible, unless you have
changed the preferHT advanced setting, while adhering to things like NUMA, to get the
best possible performance. If this is not possible, the VMkernel will schedule the multi-
vCPU virtual machine against logical processors on the same core. vSphere will
attempt to schedule against cores first, and once those are in use it will move on to using
the logical portion of the core. In addition, the CPU Scheduler will track how much time
is spent by a world (an execution context that is scheduled against a processor)
scheduled against a full core versus a partial core. Because time spent in a partial core
does not equate to equivalent performance of time spent in a full core, the CPU
Scheduler will track this time and, if necessary, move a world from executing against a
partial core to executing against a full core.
Note
A virtual machine is a collection of “worlds.” A world exists for each
vCPU, MKS (mouse, keyboard, screen), and the virtual machine monitor
(VMM). These worlds are executed against a CPU (physical or logical) via
the CPU Scheduler.
There have been two changes in vSphere 5.0 that allow for fairer balancing of worlds
against full and partial cores. The first is a contention check. The CPU Scheduler tracks
how much time is lost due to contention on behalf of HTT. Because time lost can even
out over time, meaning laggards can catch up, as longs as the fairness threshold that
 
Search WWH ::




Custom Search