1

We have a machine with an 88-core CPU in our department. Imagine there are 11 researchers who want to use the machine whenever they have to test a new approach. We've made 11 VMs on VMWare ESXI host, one for each researcher.

The question is how to share CPU among VMs to achieve the following: (so it's fair and it can be utilized the best)

  1. When only 1 VM is doing CPU intensive work and others are idle, it can utilize maximum power of CPU.
  2. When let's say 4 VMs are doing CPU intensive work, they get around 25% each.
  3. When none is idle, each get around 1/11 of CPU power.

My suggestion was to assign all 88 cores to each VM, and give each 1/11 of CPU power reserved. In contrary, our sysadmin wanted to assign 8 cores to each VM. He reasoned if one VM for example gets all cores 100%, when another VM tries to use CPU it only receives the reserved amount, not 50%.

Based on what I read here and here I assume VMWare ESXI would release resources and give them to second VM in the case mentioned above. Can anybody help us?

4
  • What type of processor (make/model) is actually installed in the system? You likely do not have 88 physical cores.
    – ewwhite
    Aug 21, 2017 at 11:31
  • It's 44 physical cores i.e. 88 vCPUs. Aug 21, 2017 at 11:32
  • Make and model of CPU.
    – ewwhite
    Aug 21, 2017 at 11:32
  • 2 x Intel® Xeon® Processor E5-2699 v4, cpu family: 6, model: 79 Aug 21, 2017 at 11:42

1 Answer 1

3

My suggestion was to assign all 88 cores to each VM, and give each 1/11 of CPU power reserved.

PLEASE don't do this, please - presumably you've not been on an vSphere courses right?

Don't use any form of resource allocation at all until you have a verified problem. Whatever you do don't allocate more vCPUs than your physical sockets actually have - i.e. 22 in this case - you can do this if you really want but it's generally a terrible idea (google 'NUMA' and 'vNUMA' if you get time).

What I'd do is allocate 4, 6 or 8 vCPUs per VM and just let ESXi get on with it, it's designed to run everything itself really.

3
  • When only 1 VM is doing CPU intensive work and others are idle, can it utilize all CPU power with this method!? Aug 21, 2017 at 12:20
  • 2
    Don't do it, please
    – ewwhite
    Aug 21, 2017 at 12:21
  • "When only 1 VM is doing CPU intensive work and others are idle, can it utilize all CPU power with this method!?" - yeah, sorta/kinda, but in a bad way, essentially you lose lots of performance because you're treating CPUs as memory-controllers if you break out of vNUMA-boundaries, it's just deeply inefficient. Just let them have regular VMs with 4/6/8 vCPUs and then if you're constantly getting CPU-usage-100% alarms then consider giving them more vCPUs but please never go over 22 vCPUs per VM in your case.
    – Chopper3
    Aug 21, 2017 at 12:25

You must log in to answer this question.

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