We have a ESX host:
It has 2 CPU x 8 cores each, and HT enabled. So, total 16 physical cores or 32 logical cores.
It has a single dedicated SQL VM on it (no other VMs run on this host), and it has 16 vCPUs assigned:
and the SQL NUMA config looks like:
Does it mean these 16 vCPUs map to the 16 logical cores in 1 CPU, and that the other CPU containing 16 more logical cores is sitting idle?
Will increasing it to 32 vCPUs make a difference?
I found this article, that says do not assign more vCPUs than actual physical cores, regardless of logical cores. Why not?
Generally, keeping assigned vCPUs no more than the physical cores (ignoring HT) is playing it safe. You have 2 physical CPUs with 8 core each (although I remember the E5-2667 having 6) - that means 16 true cores. No need to assign more. Note that in many situations like your it's more likely to run out of RAM rather than CPU power.
The reason they don't recommend that is because how HyperThreading works in VMware, it's not twice the compute power, more like 10% extra according to some tests. So you shouldn't define any more vCPUs than physical cores. If that huge VM isn't alone on that host, you might also like to keep in mind that while that VMs clock cycles are running not much else is going to happen on the other VMs, as that single VM consumes all available cores, and it won't run if not all 16 cores are available.
MSSQL is a processor hog, and for good reason. It would also reduce the effectiveness of HT because HT only splits the load of the processor but doesn't double your compute. If you're going to have a high performance SQL server running, you may want to consider assigning core-affinity rules in vSphere and prevent other VMs from running against those cores. I know it defeats the purpose of virtualization, but there are still some advantages.