Thursday, June 13, 2013

Why don't I enable HT on my VMware hosts esxi 4.x/5.x

please refer the page 20/54 in the above document and you should see the below documentation.
An ESX system enabled for hyper-threading should behave almost exactly like system without it. Logical
processors on the same core have adjacent CPU numbers, so that CPUs 0 and 1 are on the first core, CPUs
2 and 3 are on the second core, and so on.
You may also refer
which is applicable for
·  Product Version(s):
VMware ESX 4.0.x
VMware ESX 4.1.x
VMware ESXi 4.0.x Embedded
VMware ESXi 4.0.x Installable
VMware ESXi 4.1.x Embedded
VMware ESXi 4.1.x Installable
VMware ESXi 5.0.x
So incorrect HT configuration may cause some issues later, hence for a negligible amount or no performance gain by enabling HT we invite the possibilities of the following issues. If they have enabled HT on the physical host then they might have to configure each VM separately so that they can take advantage of the HT, Imagine 20 VMs running on a HT enabled host and we have 5 such hosts in a cluster. We are looking at the reconfiguration of 100 VMs manually.
Configure one virtual machine to use hyper-threading with NUMA, add numa.vcpu.preferHT=TRUE for per-virtual machine advanced configuration file.
Right-click on VM
Select Edit Settings
Click the Options tab.
Highlight General under Advanced options and click Configuration Parameters.
Or enable  it on all VMs
So even if they enable HT without manually configuring the VMs the HT is actually not being used and more than 90% of the users are not aware that they have to enable this on VMs too and even if they do, nobody wants to do that on 100 VMs manually for a performance gain which is near 0 (as per vmware documentation). So for a near 0 performance gain we are looking at a possibility of PSOD and if these PSODs are exception 13/14 then that is very hard to isolate, which hardware might have caused it, and almost all the exception 13/14 PSODs that I have seen end up with some or the other hardware replacement, mostly CPU.
Page 18/60
If the hardware and BIOS support hyper-threading, ESX automatically makes use of it. For the best
performance we recommend that you enable hyper-threading, which can be accomplished as follows
however this has only been seen in esxi 5.x and many users that I have dealt with who were running 4.1 haven’t had any considerable performance gain by enabling HT.
So to reiterate again, HT is supported but not advised unless they are (made) aware of all the other cons that they will get in exchange for a negligible performance gain. Some customer’s with database VMs have earlier faced some low performance on their VMs after enabling HT. When we enable 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. Until you have more vCPUs requesting processing power than there are physical cores, HT cannot hurt and provides no value; which means when all the actual physical cores of the CPU are running at near 100% then only the vmware will try to use HT but with DRS enabled on the cluster the VMs will automatically be moved to other hosts reducing the load on the host which means the hosts will practically never reach a state where the CPU is being utilized near 100%. Almost 99% of the VMware hosts that I have seen so far run out of memory first before the cpu usage of the host can actually reach near 90% mark which again makes sure that your host ‘s physical cores are never at above 90% mark because once the memory reaches that 90% mark before the CPU the VMs will be moved to other hosts either by the user or by DRS.