Resource Pool – Conclusion

In my previous posts about resource pool I have stressed on Resource Pool hierarchy. I have also highlighted one tip related to resource pool hierarchy, If you have not noticed that then below is the tip once again-

Tips: It is best practice to not allow VMs and resource pools to be siblings with each other. Otherwise, when there is contention, it is very likely for the VMs inside the pool to loose out in competion with VMs outside the pools.

So, Here I am trying to explain you why it is so and what impact it will have. Before I begin I would also like to state that Shares comes into picture only when there is a resource contention. If there is no resource contention then VMs will get resources whatever they require.

So coming back to the point, Let us assume that we have 3 resource pool with default share values High, Normal and Low. So in in the event of resource contention resource allocation would be in 4:2:1. Refer below Pic once again.

Shares
Resource Sharing: High, Normal and Low.

So far pretty straight calculation. Now assume that I have 11 VMs and I put 2 VMs in High, 1 VM in Low and 8 VM in Normal. So what you may think is in event of resource contention High priority VMs will get more share then normal resource pool VMs and Normal VMs should get more shares then Low resource pool VMs. Ideally that is what we wish for but unfortunately that does not happen. Have a look at below table which shows that how much shares each VM will get.

This clearly shows that with above distribution of VMs will give more shares to Low resource pool’s VM.

VM Share Resource Pool
VM-1 28.5 High
VM-2 28.5 High
VM-3 3 Normal
VM-4 3 Normal
VM-5 3 Normal
VM-6 3 Normal
VM-7 3 Normal
VM-7 3 Normal
VM-8 3 Normal
VM-9 4 Normal
VM-10 4 Normal
VM-11 14 Low
Share Distribution
Resource Distribution

You must be wondering how did it happen. So In case of shares, hierarchy and VM distribution is very important. When I add 2 VMs in High resource pool then as per 4:2:1 share, High gets 57% of share and as it has 2 VMs it evenly distributes this to both the VMs and each VM gets 28.5% of share.

Same applies for Normal and Low, Normal had 8 VMs so share value of normal resource pool 29% is evenly distributed among 8 VMs and ended up getting 3-4%. Now in case of low resource pool which had only one VM hence it gets 14% share.

Imagine if i have 3 resource pool and one VM-x which is not part of any resource pool. which means that VM and all 3 resource pool are in same hierarchy with respect to their parent cluster. Hence VM-x is sibling to other 3 clusters. Now If I give VM-x share value as Normal which is default however. In this case Normal share will be distribute evenly between Normal resource pool and VM-x and gets 14.5% respectively. Hence VMs in resource pool will get shares out 14.5% and not from 29%. This will enable VM-x to get more resources then VMs in normal resource pool. This example clarifies the point, why we should not have resource pool and VMs as siblings.

This has also been explained by Duncan Epping in his post “The Resource Pool Priority-Pie Paradox” .

Conclusion:

  1. Do not use resource pool to organize your VMs. For organization of VM we have folders.
  2. While planning out resource pool make sure that you distribute VMs carefully.
  3. VM level reservation and Resource Pool level reservation works slightly different from each other. refer http://frankdenneman.nl/2010/05/18/resource-pools-memory-reservations/ 
  4. Strategies and review your resource management design periodically. As infrastructure may change dynamically.

Thanks for putting your effort in reading this article. Please comment and share your feedback in below comment section. Also feel free to post questions if you have any.

Enjoy!

One thought on “Resource Pool – Conclusion

Leave a Reply