VMWare ESXi and Hyperthreading

I have (as some are probably tired of seeing on SF) a Dell 2950, dual 4 core 3Ghz processors running ESXi. I noticed on the VSphere management console that the server says it doesn't have hyperthreading enabled ("inactive")

Apparently it is by default turned off in the BIOS.

I know I could shut down all the VM's and reboot and edit that setting, but should I? Is there a real benefit to having hyperthreading enabled on this type of setup, or is the performance gain marginal, if any??


Solution 1:

I've only read about this topic a handful of times. I found an article at www.vmguy.com here that sums up the consensus on this HT issue (direct from the article):

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.

Again, this is directly from the article. I'm not certain that HT is worth it as I too use AMD Opterons so I can't speak from experience.

Solution 2:

Are you sure your CPUs even have HyperThreading on them? I think most quad core CPUs don't. My ESX Servers also report that HyperThreading is "inactive" and I've got AMD CPUs which have never had HT on them.