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?

Ali Hashemi
  • 288
  • 1
  • 5
  • 15

1 Answers1

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.

Chopper3
  • 101,299
  • 9
  • 108
  • 239
  • 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