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.
- 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).
- 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.