Hi, Eric,
now that you have recommendations of x2 and x3 CPUVPs per (virtual) CPU, let me throw in one more suggestion:
1 CPUVP per processor.
:-)
But, to be fair, your optimal performance number, in otherwise solid configuration, is expected to be achieved with 2
active sessions per CPUVP, possibly more (3) if network latency is a factor.
If, in this setup, you don't see 100% CPU use - something else is wrong, check I/O, etc.
Now, on the topic of hyperthreading. The VM, I think, recently started to ignore processor metadata, so in most cases you cannot tell (if HT is enabled) if two logical processors are two different cores or two threads on the same core.
This is really bad, because with HT you were able to squeeze 20% to 40% extra performance from the core, but for certain types of scenarios (inline poll thread) running two CPUVPs on the same core really degrades performance.
Not knowing which is which limits ability to control things with affinity, so when in doubt, you'll have to turn off HT.
If licensing is per (virtual) processor it also does not make sense to pay 100% for 40% performance boost.
So, here you have it - now you need to try x1, x2, and x3 CPUVPs per core and see what works best ....
:-)
------------------------------
Vladimir Kolobrodov
------------------------------