VMware Cloud Community
Faize
Enthusiast
Enthusiast
Jump to solution

Is NUMA or Hyper Threading better for overall performance?

Let's say I have an ESXi 5.1 host which has 2 quad-core processors with Hyper Threading, for a total of 16 logical processors. If I have a very CPU-hungry VM that I want to give 8 vCPUs to, would it be better to span across NUMA nodes, or apply the numa.vcpu.preferHT=TRUE configuration to force the VM to stay on a single NUMA node and use Hyper Threading instead?

I'm interested in both obtaining optimal performance for this VM while ensuring that the other (much less CPU intensive) VMs running on this host don't get CPU starved or block this VM from accessing the CPU.

1 Solution

Accepted Solutions
JarryG
Expert
Expert
Jump to solution

You have to understand that "hyperthreaded core" is not true core. It can do only certain things. It is difficult to assess this performance, but I'd say in common tasks you can not get more than ~20% performance from ht-core (compared to the real core). Sometimes more, othertimes none at all.

So if you are running cpu-intensive tasks (like video-encoding), it is better to let your VM (with 8 vCPU) to use both pCPUs (4 true cores of each one), even if you loose a few CPU-cycles due to NUMA.

_____________________________________________ If you found my answer useful please do *not* mark it as "correct" or "helpful". It is hard to pretend being noob with all those points! 😉

View solution in original post

5 Replies
Bugatt1
Enthusiast
Enthusiast
Jump to solution

If your monster VM must have more RAM than your NUMA node has, it's better to span..

Faize
Enthusiast
Enthusiast
Jump to solution

Actually, this VM will be doing video encoding - CPU usage is infinitely huge, but RAM usage is almost negligible.

Reply
0 Kudos
JarryG
Expert
Expert
Jump to solution

You have to understand that "hyperthreaded core" is not true core. It can do only certain things. It is difficult to assess this performance, but I'd say in common tasks you can not get more than ~20% performance from ht-core (compared to the real core). Sometimes more, othertimes none at all.

So if you are running cpu-intensive tasks (like video-encoding), it is better to let your VM (with 8 vCPU) to use both pCPUs (4 true cores of each one), even if you loose a few CPU-cycles due to NUMA.

_____________________________________________ If you found my answer useful please do *not* mark it as "correct" or "helpful". It is hard to pretend being noob with all those points! 😉
vfk
Expert
Expert
Jump to solution

JerryG makes a valid point, also the CPU scheduler has preference to use physical core over HT, it is also smart enough to balance you workload.  If you are concerned about performance then I would recommend ratio 2:1 (vCPU-2-Core) else maintain 1:1

--- If you found this or any other answer helpful, please consider the use of the Helpful or Correct buttons to award points. vfk Systems Manager / Technical Architect VCP5-DCV, VCAP5-DCA, vExpert, ITILv3, CCNA, MCP
Faize
Enthusiast
Enthusiast
Jump to solution

Thanks for the help, everyone. Given that even in the worst case scenario I'll only need to turn off the VM and adjust some configuration settings, I guess I'll just take a leap of faith and hope that ESXi will do the right thing.

Reply
0 Kudos