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?

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

  • When only 1 VM is doing CPU intensive work and others are idle, can it utilize all CPU power with this method!? – Ali Hashemi Aug 21 '17 at 12:20
  • 2
    Don't do it, please – ewwhite Aug 21 '17 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 '17 at 12:25

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.