VMware CPU Hyper Threading Scheduling Affinity

The UI may be confusing here, but Hyperthreaded Core Sharing and the Scheduling Affinity are separate items.

  • Hyper threading Sharing is just finer control over the HT options.
  • The Scheduling Affinity dialog displays Hyperthreading status (which is controlled at the hardware BIOS level) and then allows you to specify taskset-style CPU affinity masks.

enter image description here

Hyperthreading Sharing

The options are:

Any – (default) The virtual CPUs of this virtual machine can freely share cores with other virtual CPUs of this or other virtual machines.

None – The virtual CPUs of this virtual machine have exclusive use of a processor core whenever they are scheduled to it. The other hyperthread of the core is “halted” while this virtual machine is using the core.

Internal – On a virtual machine with exactly two virtual processors, the two virtual processors are allowed to share one physical core (at the discretion of the ESXi scheduler), but this virtual machine never shares a core with any other virtual machine. If this virtual machine has any other number of processors than two, this setting is the same as the None setting.


In either case, I don't recommend changing any of these settings in 99% of use cases as you run the risk of performance problems or increased contention. The Scheduling Affinity box should be blank.

Is there a particular effect or situation you're trying to deal with?


I just checked the language of the Adobe ColdFusion license. For your use case, "CPU" means physical socket (which may be multi-core). The licenses are sold in 2-CPU quantities. So you need one license per dual-socket ESXi host.


The default for all virtual machines on a hyperthreaded system is ANY. The virtual CPUs of a virtual machine with this setting can freely share cores with other virtual CPUs from this or any other virtual machine at any time. Changing this settings can cause performance issues and you won't really be using the benefits of it. Also, Hyperthreading depends on processor type and is enabled in System bios.