can someone help me understand resource pools ?
I have the following cluster
- 9 TB of RAM
- 350 Cores of CPU
Resource pool 1 = 200 VMs
"Low" Shares
*2000 Shares of CPU
*81920 Shares or RAM
Resource pool 2 = 300 VMs
"Normal" Shares
*4000 Shares of CPU
*163840 Shares of RAM
Resource pool 3 = 12 VMs
"High" Shares
*8000 Shares of CPU
*327680 Shares of RAM
*These look like default values from VMware.
I would like to confirm what is actually going on here and if this is balanced.
How much is each VM in Pool 1 entitled to roughly ?
How much is each VM in Pool 2 entitled to roughly ?
How much is each VM in Pool 3 entitled to roughly ?
There must be some simple math formula used to calculate this ?
When there is no contention for CPU or memory resources, the shares will have no meaning whatsoever.
When there is contention, the VMs in any given pool compete for resources using their individual VM-level shares against the other VMs in the same pool.
So when you have 1 pool with 300 VMs and another pool with only 12 VMs, those in the 300 VM pool can face much more competition and could therefore suffer more than the VMs in the pool of 12, regardless of the pool-level shares.
The pools compete with one another when there is contention, using their pool-level shares.
You could use simple division to calculate the relative pool-level and VM-level share allocations - but as I mentioned at the start, it is only in periods of contention that those allocations would have any effect.
Hi Scott thanks for the reply but i am looking for the answer to the following questions
How much is each VM in Pool 1 entitled to roughly ?
How much is each VM in Pool 2 entitled to roughly ?
How much is each VM in Pool 3 entitled to roughly ?
I've already answered your questions with my previous reply, but allow me to elaborate....
Let's look specifically at CPU resource allocation:
Pool 3 = 8000 shares
Pool 2 = 4000 shares
Pool 1 = 2000 shares
Pool 3 is twice as likely to be allocated CPU resource as Pool 2 WHEN there is CPU contention.
Pool 2 is twice as likely to be allocated CPU resource as Pool 1 WHEN there is CPU contention, but only half as likely to be allocated CPU resource as Pool 3 WHEN there is CPU contention
Pool 1 is half as likely as Pool 2 to be allocated CPU resource as Pool 2 WHEN there is CPU content, and only a quarter as likely to be allocated CPU resource as Pool 3 WHEN there is CPU contention
The same logic applies when you consider the VMs inside each of the resource pools, WHEN there is CPU contention - as an example let us assume each of the 12 VMs in Pool 3 has a single virtual CPU then each VM will have 1000 CPU shares:
VM3A in Pool 3 has 1/12 of the total shares of all the VMs in that pool, therefore it is likely to be allocated 1/12th of the available CPU resource of Pool 3 WHEN there is CPU contention.
VM3B in Pool 3 is the same as VM3A
And so on for the other VMs in Pool 3
If any of the VMs in Pool 3 has 2 vCPUs that VM will have 2000 CPU shares rather than 1000, but the same logic is true for each of the individual vCPUs for that VM.
Apply the same logic to the 300 VMs in Pool 2, and the 200 VMs in Pool 1.