This question is about to come up again so I can see multiple posts coming in the future on it. Intel’s Nehalem Processor is adding HyperThreading back into the chips so you can expect more posts on this topic in the near future. I have not reviewed HT on Nehalem so I don’t know all of the changes that have been made to HT (if any). This is the position I have responded with in the past:
There are pros and cons to using HT in ESX.
Pros
- Better co-scheduling of SMP VM’s
- Hyperthreading provides more CPU contexts and because of this, SMP VM’s can be scheduled to run in scenarios which would not have enough CPU contexts without Hyperthreading.
- Typical applications see performance improvement in the 0-20% range (the same as non-virtualized workloads).
Cons
- Processor resources are shared with Hyperthreading enabled
- Processor resources are shared such as the L2 and L3 caches. This means that the two threads running on the same processor compete for the same resources if they both have high demand for them. This can, in turn, degrade performance.
All things considered, it is difficult to generalize the performance impact of Hyperthreading. It is highly dependant on the workload of the VM.
One additional point is that you can always utilize the CPU min and max values on a per-VM or Resource Pool basis to reserve certain amounts of CPU for your most critical workloads.
As with the majority of performance items I enounter, test, test, test. Try out the workloads and see what works the best on the hardware you have available.
Great advice. I think the decision point to enable or disable HT on a 2P quad-core host is a lot safer than it was with similar single- and dual-core 2P hosts.
Another margin of safety is that ESX doesn’t start using the logical processors (the second set of registers made available by enabling HT) until it absolutely needs to, and even then, still favors physical processors when scheduling work. A good reference: http://communities.vmware.com/docs/DOC-5101.
Dave – how would hyperthreading effect licensing in VMware?
@Kurtis Lindemann
Hyperthreading does not affect licensing in VMware. VMware is licensed by physical CPU, not by cores on a CPU or use of Hyperthreading.
@Justin
Actually, better language would be that ESX is licensed by socket, not by cores or logical CPUs.
That is true and VMware upgraded the licensing so a single socket includes processors up to the newest 6-core Dunnington and Nehalem processors. You can read all the specifics here:
http://vmware.com/download/eula/multicore.html
Dave
So the answer is still back to the million dollar “consultant answer” – it depends!
In this case, seems like it’s application specific……