It's my understanding that in previous versions of ESX (v3.0) running on older Intel processors, it was advised to DISABLE hyperthreading in the server BIOS.
We currently have several DL380 G6 servers with dual quad core processors (Intel E5530's) that will be recycled to host our ESX 4 installation. Is it now considered best practice to ENABLE hyperthreading given the processors in these servers while running ESX 4?
thanks
Yeah its even in Vmwares performance best practices now too :-
http://www.vmware.com/pdf/Perf_Best_Practices_vSphere4.0.pdf
Absolutely enable Hyperthreading.
Roger that!
Definately
Seems like Nehalem and beyond might have changed the thinking on using Hyperthreading again -- haven't been able to find anything specific to this but for pre-Nehalem check out this link for Pros and Cons before you enable:
I would enable. See this nice post by Scott Drummonds. http://vpivot.com/2010/03/06/hyper-threading-on-vsphere/
If you found this or any other post helpful please consider the use of the Helpful/Correct buttons to award points
The cons are dwindling. That site points to another that can only come up with 1 con.
And it's not a con, especially with the NEW processors. The L2 and L3 cache are shared. That's not a negative, in fact the NEW processors are slit processors anyway, so hyper threading is what they were designed to do.
The ONLY caveat to hyper threading is APPS. APPS on physical systems see physical devices, therefore they can make calls to the hardware layer, and depending on the compiler it may actually be a detriment. SQL server can take advantage of SMP by utilizing those threads, but some apps cannot, but ironically what programmers and companies will NOT tell you is those apps are poorly written.
For instance,
For / Next loops and do / while loops can be headaches for many people.
If you logically think
If 1 is a number, and a is not
then you can do calculations.
Sounds simple right? Well programmers are lazy most of the time, and they don't do simple checks, so when calculations occur on a NON number (such as SQL) you get abends (abnormal terminations) or code that causes errors, because the software is expecting integers where letters are.
This may seem very basic, but you would be surprised to know that hyper threading is a math intensive path, and you can split numbers (such as complex formulas), but you can't split lines of text... where do you split a word, and know how to put it back together. Math calculations can be done in parallel, stings cannot.
There are a myriad of other examples, I will spare you.
Suffice to say that APPS are the problem, and since Virtual Machines do NOT have access to the hardware layer it doesn't matter if the vCPU are hyper threaded or not. They are ALL identical.
THE ONLY real difference here is ESX can utilize those threads much more efficiently by using 16 instead of 8 if they are available. If they AREN'T available, that is less threads to optimize performance. The early hyper threading days were idle process time. If a CPU is NOT busy it can spawn a thread that is an idle thread (and they were less than 20% of the speed of the processor), now you get VM's with unequal threads.
That's where the problem comes in, NOW ALL the threads, regardless of core speed with the new hyper threading are the same, so why not simply spawn 2 threads instead of one.. the likely hood that you can "choke" a thread is very very low, and all it means is the cache has to cover for a re-read of a CPU instruction.
We are talking cores capable of TRILLIONS of instructions per second. 1 or 2 re-reads is NOT going to make a difference. I can pretty much guarantee that.
Great discussion here -- many thanks to the OP for the initial question and the great answers provided by those who followed!
Yeah its even in Vmwares performance best practices now too :-
http://www.vmware.com/pdf/Perf_Best_Practices_vSphere4.0.pdf
Thank you everyone!
I did a quick test and I found with Hyperthreading Enable, my VM run much more faster & better performance.
Regards,
jlchannel
MALAYSIA VMware Communities
'If you found this or any other answer useful please consider allocating points for helpful or correct answers ***
Interesting you should say this Jason, we too have found this. I have started a new thread in this forum to ask everyone else if they have found the same.