ESXi

 View Only
  • 1.  Using CPU shares

    Posted Mar 22, 2015 05:33 PM

    Hi Folks,

    i am learning towards my VCP-DCV 550 exam and I have a question regarding shares for which I did not find an answer:

    How do shares work when I have VMs with different numbers of vCPUs allocated?

    Lets assume that I have a host with 5x VMs and the host has a single quad core processor with 4GHz. (4x4GHz =16GHz total host CPU resources)

    VM1-2-3-4: each VM is configured with 1x vCPU and CPU reservation of 1000Mhz (per VM) shares are set to normal (1000 shares)

    VM5: is configured with 4x vCPU and a CPU reservation with 1000MHz, shares are set to normal (1000 shares)

    the running VMs have a total reservation of 1000+1000+1000+1000+ 4x1000 MHz = 8000MHz

    But how are the remaining  8GHz host CPU resources allocated between the VMs (assuming all VMs are busy and in the state of CPU contention)?

    Thanks for the clarification!

    BR

    Janos



  • 2.  RE: Using CPU shares
    Best Answer

    Posted Mar 22, 2015 06:19 PM

    Welcome to the Community - where the confusion is coming form is that shares are not really clock cycles but a percentage of available clock cycles - think of the total number of cycles as a pie of the amount of shares determine how the pie the divided when there is contention - so with your example each vcpu can occupy an entire core and you have total of 8000 shares -when all vcpus need a full core the CPU cycles will get divided like this   a single vcpu vm will get 1000/8000 of the available cpu cycles when there is contention and the quad vcpu will get 4000/8000 or 1/2 of the available cycles

    hope this helps



  • 3.  RE: Using CPU shares

    Posted Mar 22, 2015 09:05 PM

    Thanks Weinstein!

    i got the implicit information from your answer, that when you create a single vCPU VM with normal shares than it gets 1000 shares, when you create a VM with #X vCPUs than that one gets X x 1000 shares.

    I actually tried it (with a 2x vCPU and a 1x vCPU VM) and the 2x vCPU VM got 2000 shares (when set on normal) and the 1x vCPU VM got 1000 shares (when also set on normal).

    So when I have a VM which has 2x vCPUs than in the case of contention it will be able to draw 2x more additional cycles over reservation than a 1x vCPU VM. This is also analogous with the way the default memory shares work

    (default memory shares = 10x amount of Megabytes the VM is created with)

    Which perfectly makes sense and now my question is fully answered!

    Thanks!

    Janos



  • 4.  RE: Using CPU shares

    Posted Mar 22, 2015 07:58 PM