6.5.1

Table Of Contents
n
Use advanced seings under certain circumstances.
n
Use the vSphere SDK for scripted CPU allocation.
n
Use hyperthreading.
Multicore Processors
Multicore processors provide many advantages for a host performing multitasking of virtual machines.
Intel and AMD have developed processors which combine two or more processor cores into a single
integrated circuit (often called a package or socket). VMware uses the term socket to describe a single
package which can have one or more processor cores with one or more logical processors in each core.
A dual-core processor, for example, provides almost double the performance of a single-core processor, by
allowing two virtual CPUs to run at the same time. Cores within the same processor are typically congured
with a shared last-level cache used by all cores, potentially reducing the need to access slower main memory.
A shared memory bus that connects a physical processor to main memory can limit performance of its
logical processors when the virtual machines running on them are running memory-intensive workloads
which compete for the same memory bus resources.
Each logical processor of each processor core is used independently by the ESXi CPU scheduler to run
virtual machines, providing capabilities similar to SMP systems. For example, a two-way virtual machine
can have its virtual processors running on logical processors that belong to the same core, or on logical
processors on dierent physical cores.
The ESXi CPU scheduler can detect the processor topology and the relationships between processor cores
and the logical processors on them. It uses this information to schedule virtual machines and optimize
performance.
The ESXi CPU scheduler can interpret processor topology, including the relationship between sockets, cores,
and logical processors. The scheduler uses topology information to optimize the placement of virtual CPUs
onto dierent sockets. This optimization can maximize overall cache usage, and to improve cache anity by
minimizing virtual CPU migrations.
Hyperthreading
Hyperthreading technology allows a single physical processor core to behave like two logical processors.
The processor can run two independent applications at the same time. To avoid confusion between logical
and physical processors, Intel refers to a physical processor as a socket, and the discussion in this chapter
uses that terminology as well.
Intel Corporation developed hyperthreading technology to enhance the performance of its Pentium IV and
Xeon processor lines. Hyperthreading technology allows a single processor core to execute two independent
threads simultaneously.
While hyperthreading does not double the performance of a system, it can increase performance by beer
utilizing idle resources leading to greater throughput for certain important workload types. An application
running on one logical processor of a busy core can expect slightly more than half of the throughput that it
obtains while running alone on a non-hyperthreaded processor. Hyperthreading performance
improvements are highly application-dependent, and some applications might see performance degradation
with hyperthreading because many processor resources (such as the cache) are shared between logical
processors.
N On processors with Intel Hyper-Threading technology, each core can have two logical processors
which share most of the core's resources, such as memory caches and functional units. Such logical
processors are usually called threads.
vSphere Resource Management
20 VMware, Inc.