Hardware-assisted cpu virtualization, Virtualization and processor-specific behavior, Performance implications of cpu virtualization – VMware vSphere vCenter Server 4.0 User Manual

Page 18: Administering cpu resources, Administering cpu resources 18

Advertising
background image

Hardware-Assisted CPU Virtualization

Certain processors (such as Intel VT and AMD SVM) provide hardware assistance for CPU virtualization.
When using this assistance, the guest can use a separate mode of execution called guest mode. The guest code,

whether application code or privileged code, runs in the guest mode. On certain events, the processor exits

out of guest mode and enters root mode. The hypervisor executes in the root mode, determines the reason for

the exit, takes any required actions, and restarts the guest in guest mode.
When you use hardware assistance for virtualization, there is no need to translate the code. As a result, system

calls or trap-intensive workloads run very close to native speed. Some workloads, such as those involving

updates to page tables, lead to a large number of exits from guest mode to root mode. Depending on the number

of such exits and total time spent in exits, this can slow down execution significantly.

Virtualization and Processor-Specific Behavior

Although VMware software virtualizes the CPU, the virtual machine detects the specific model of the processor

on which it is running.
Processor models might differ in the CPU features they offer, and applications running in the virtual machine

can make use of these features. Therefore, it is not possible to use VMotion

®

to migrate virtual machines

between systems running on processors with different feature sets. You can avoid this restriction, in some

cases, by using Enhanced VMotion Compatibility (EVC) with processors that support this feature. See Basic

System Administration for more information.

Performance Implications of CPU Virtualization

CPU virtualization adds varying amounts of overhead depending on the workload and the type of

virtualization used.
An application is CPU-bound if it spends most of its time executing instructions rather than waiting for external

events such as user interaction, device input, or data retrieval. For such applications, the CPU virtualization

overhead includes the additional instructions that must be executed. This overhead takes CPU processing time

that the application itself can use. CPU virtualization overhead usually translates into a reduction in overall

performance.
For applications that are not CPU-bound, CPU virtualization likely translates into an increase in CPU use. If

spare CPU capacity is available to absorb the overhead, it can still deliver comparable performance in terms

of overall throughput.
ESX/ESXi supports up to eight virtual processors (CPUs) for each virtual machine.

N

OTE

Deploy single-threaded applications on uniprocessor virtual machines, instead of on SMP virtual

machines, for the best performance and resource use.
Single-threaded applications can take advantage only of a single CPU. Deploying such applications in dual-

processor virtual machines does not speed up the application. Instead, it causes the second virtual CPU to use

physical resources that other virtual machines could otherwise use.

Administering CPU Resources

You can configure virtual machines with one or more virtual processors, each with its own set of registers and

control structures.
When a virtual machine is scheduled, its virtual processors are scheduled to run on physical processors. The

VMkernel Resource Manager schedules the virtual CPUs on physical CPUs, thereby managing the virtual

machine’s access to physical CPU resources. ESX/ESXi supports virtual machines with up to eight virtual

processors.

vSphere Resource Management Guide

18

VMware, Inc.

Advertising
This manual is related to the following products: