Hyperthreading and esx/esxi hosts, Enable hyperthreading – VMware vSphere vCenter Server 4.0 User Manual

Page 21

Advertising
background image

Hyperthreading and ESX/ESXi Hosts

An ESX/ESXi host enabled for hyperthreading should behave similarly to a host without hyperthreading. You

might need to consider certain factors if you enable hyperthreading, however.
ESX/ESXi hosts manage processor time intelligently to guarantee that load is spread smoothly across processor

cores in the system. Logical processors on the same core have consecutive CPU numbers, so that CPUs 0 and

1 are on the first core together, CPUs 2 and 3 are on the second core, and so on. Virtual machines are

preferentially scheduled on two different cores rather than on two logical processors on the same core.
If there is no work for a logical processor, it is put into a halted state, which frees its execution resources and

allows the virtual machine running on the other logical processor on the same core to use the full execution

resources of the core. The VMware scheduler properly accounts for this halt time, and charges a virtual machine

running with the full resources of a core more than a virtual machine running on a half core. This approach to

processor management ensures that the server does not violate any of the standard ESX/ESXi resource

allocation rules.
Consider your resource management needs before you enable CPU affinity on hosts using hyperthreading.

For example, if you bind a high priority virtual machine to CPU 0 and another high priority virtual machine

to CPU 1, the two virtual machines have to share the same physical core. In this case, it can be impossible to

meet the resource demands of these virtual machines. Ensure that any custom affinity settings make sense for

a hyperthreaded system.

Enable Hyperthreading

To enable hyperthreading you must first enable it in your system's BIOS settings and then turn it on in the

vSphere Client. Hyperthreading is enabled by default.
Some Intel processors, for example Xeon 5500 processors or those based on the P4 microarchitecture, support

hyperthreading. Consult your system documentation to determine whether your CPU supports

hyperthreading. ESX/ESXi cannot enable hyperthreading on a system with more than 32 physical cores,

because ESX/ESXi has a logical limit of 64 CPUs.

Procedure

1

Ensure that your system supports hyperthreading technology.

2

Enable hyperthreading in the system BIOS.
Some manufacturers label this option Logical Processor, while others call it Enable Hyperthreading.

3

Make sure that you turn on hyperthreading for your ESX/ESXi host.
a

In the vSphere Client, select the host and click the Configuration tab.

b

Select Processors and click Properties.

c

In the dialog box, you can view hyperthreading status and turn hyperthreading off or on (default).

Hyperthreading is now enabled.

Set Hyperthreading Sharing Options for a Virtual Machine

You can specify how the virtual CPUs of a virtual machine can share physical cores on a hyperthreaded system.
Two virtual CPUs share a core if they are running on logical CPUs of the core at the same time. You can set

this for individual virtual machines.

Procedure

1

In the vSphere Client inventory panel, right-click the virtual machine and select Edit Settings.

2

Click the Resources tab, and click Advanced CPU.

Chapter 2 Managing CPU Resources

VMware, Inc.

21

Advertising
This manual is related to the following products: