0

I guess the question is more theoretical one. We have ESXI host with 48 Logical Cores (HT enabled, 24 real cores). We run 4 machines each provisioned with 8 vCpu. Each machine operates on 75% CPU on according to guest (top) and host (VSphere monitor) metrics.

Important detail - the machines are relatively network heavy receiving 700Mb/s of application traffic each.

ESXI is vanilla using regular switch, and VM do not use any special resource management configuration (shares, affinity, etc)

However it appears that ESXI as host is operating at 100% level. How come? All machines occupy only 32 out of 48 logical CPU and even with 100% occupancy plus add several vCPus (?) for traffic handling on ESXI part, how do we theoretically get to 100% CPU host usage?

3
  • 2
    4 VMs x 8vCPUs x 75% = 24 Cores at 100% - why would you think the host is undersubscribed?
    – Zac67
    Dec 2 at 16:57
  • The host has 48 logical cpus the machines can use at most 32 (8*4) = which leaves 16 logical CPU unused
    – Boris
    Dec 2 at 17:34
  • how do we theoretically get to 100% CPU host usage? add a fifth virtual with the same or similar workload. Quick maffs.
    – Greg Askew
    Dec 3 at 9:17

1 Answer 1

3

4 VMs * 8vCPUs * 75% load = 2400% = 24 cores at 100% load

Your host isn't undersubscribed, it's fully loaded.

SMT aka Intel Hyperthreading doesn't add actual cores, there's just an additional execution thread on each pCore to utilize idle function units. It doesn't magically double the number of physical cores.

Ie. when one thread utilizes its logical core by 100%, both SMT cores on that physical core are at 100%. Only when the first thread is waiting for some resource that the second thread doesn't need, does the latter actually run.

2
  • Not sure I get the math here. You take VM logical CPU which is mapped from host scheduler point of view to host thread not to full core (I may be wrong here), and compare it to number of host full cores. Can you clarify.
    – Boris
    Dec 2 at 17:41
  • Perhaps you can look at it this way: loading one logical core simultaneously loads its twin on the same physical core.
    – Zac67
    Dec 2 at 17:46

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .