I wanted to ask a few questions about Resource Pools, because as I dive deeper into the topic of Resource Pools, I can see there is some risk in their misuse (risks we cannot afford to be wrong about). BTW. I have read the Resource Pool Guide, and while it is a decent guide, it doesn't clarify everything for me.
Question 1: If I create a resource pool, is that resource pool a child of the system default resource pool? Or, is it adjacent to the system default resource pool? This probably matters in terms of whether you defined it as Fixed, or Expandable. If you create a Pool and make it Expandable, then resources it isn't using are available to the parent pool as I understand it. If you make it Fixed, you can waste idle resources that the pool you just created isn't using. Do I have this correct?
Question 2: There's a lot of folks who seem to be saying, "why use Pools at all - why not just put everything in a default resource pool, and add vCPU when you need it to the VMs that need more prioritization?". Since shares are added multiplicative to the number of vCPU, I am not really sure whether this strategy makes sense, or not. Does it, in fact, make sense to just ditch pools, and just throw vCPU at VMs that need or want cycles in a contentious scenario?
Here is an example I am facing:
Q. If I create 4 pools, I really have 5 pools, right? And 4 of them are a child pool to the parent pool (default pool)?
Q. If I create 4 pools, and one pool has 60 high priority VMs, and its peer pool has just 4 VMs, then the pool with 4 VMs is at a huge advantage in a contentious scenario, am I right? Because the system has been carved up into 4 slices and once slice is used for 4 VMs versus the other slice, which is divvied up between 60 VMs?
Q. Are these calculations right?
Looks like the APPSVR pool gets screwed in a contention situation, all things being equal. So if we make it high on APPSVR, we get:
4 VMs x 8vCPU x 4000 shares = 128,000. Does this even move the needle, and make a difference, if the other two normal pools have a million shares between them? We would only have 1/10th of the shares, which would hurt these VMs. It looks to me, like the VMs in APPSVR pool, might be better off in the VOIP pool - because that pool, because it has more shares, would help those 4 VMs.
But - maybe I don't understand this allocation and scheduling quite right. There seems to be quite a bit of mystery to it. But, I do want to make sure I do this right, and optimize properly. Any help would be greatly appreciated.
no interest? no replies? 🤔
Question 1: If I create a resource pool, is that resource pool a child of the system default resource pool? Or, is it adjacent to the system default resource pool? This probably matters in terms of whether you defined it as Fixed, or Expandable. If you create a Pool and make it Expandable, then resources it isn't using are available to the parent pool as I understand it. If you make it Fixed, you can waste idle resources that the pool you just created isn't using. Do I have this correct?
It is a child of the default resource pool. Any object not under a Resource Pool you created is a sibling inside the root resource pool.
Question 2: There's a lot of folks who seem to be saying, "why use Pools at all - why not just put everything in a default resource pool, and add vCPU when you need it to the VMs that need more prioritization?". Since shares are added multiplicative to the number of vCPU, I am not really sure whether this strategy makes sense, or not. Does it, in fact, make sense to just ditch pools, and just throw vCPU at VMs that need or want cycles in a contentious scenario?
That might not be the best scenario, if you are worried about priority without using pools you should focus on modifying the share value instead and not increasing capacity to just get the same result. Also, avoiding improperly sized VMs this way can lead to other types of issues. Contention will only happen if the host runs out of resources and at that point having the extra overhead can do more damage. It is always better to right-size your VMs and prioritize using shares. You do not need to use pools to change.
Q. If I create 4 pools, I really have 5 pools, right? And 4 of them are a child pool to the parent pool (default pool)?
yes, that is correct.
Q. If I create 4 pools, and one pool has 60 high priority VMs, and its peer pool has just 4 VMs, then the pool with 4 VMs is at a huge advantage in a contentious scenario, am I right? Because the system has been carved up into 4 slices and once slice is used for 4 VMs versus the other slice, which is divvied up between 60 VMs?
That is the right assumption if you are not using the "Scalable shares" option in version 7. Make sure this option is enabled on the parent pool you want to avoid this scenario on and the share value applied to the VMs will be proportionate to the root resources and not the pool they reside on. In your case, it would be under DRS cluster settings.
I hope this helps. The picture starts getting a lot more complicated if you start going down the limit and reservation path. Just configuring shares is more straightforward.