We're Hiring!
Take the next step in your career and work on diverse technology projects with cross-functional teams.
LEARN MORE
Mountain West Farm Bureau Insurance
office workers empowered by business technology solutions
BLOG
10
4
2016
3.1.2023

Tips to Manage Resource Pools in Your VMware Cloud

Last updated:
9.16.2020
3.1.2023
No items found.
VMware resource pool examples. Source: VMware

Resource pools in VMware powered clouds are one way to manage all available server resources and divide them among your virtual machines (VMs). They are essentially folders for your VMs that direct the server to allocate a certain amount of resources to a specified group of VMs in a hierarchy.

Resource pools are generally used to prioritize certain VMs over others, for reselling resources outside of your organization, and for isolating groups of VMs within performance standards, like when setting up a pool for Testing and Development vs. Production. Access controls are another reason to use resource pools – administrators can delegate a single pool of resources to a team member based on permissions.

Here are some tips to help you efficiently manage the CPU and memory allocated to your cloud servers.

 

Each resource pool can be defined by reservation, limit, shares, and expendability. Each pool can also have child pools underneath it that are further subdivided. All pools then contain VMs. Resource pools require Distributed Resource Scheduler (DRS), which is only available with certain license levels.
 

Creating a resource pool in vSphere Web Client

In the main navigator view of vSphere Web Client, select a host, resource pool, or a DRS cluster, then right click and choose All vCenter Actions > New Resource Pool. Pick a descriptive (or maybe funny, for this test run) name and then specify your shares, reservation, expandable reservation, and limit.

Shares are how you define priority for the resource pool. Typical share values are 2:4:1, where the values correspond to a Normal, High, and Low priority, but you can also set custom share values. When resources are not enough to cover all of your virtual machines, these settings will determine where to allocate them.

Limits are, as you might suspect, the maximum amount of each resource that can be used by the pool. Servers will never allocate more than the limit to a single virtual machine, so if you set the memory limit to 2GB, each VM in that resource pool can only have a maximum of 2GB of memory at a time.

Reservations are the opposite of limits in that they are the baseline resource assigned to each VM. A resource pool with a reservation limit of 8GB of RAM will split that 8 GB among all VMs within that pool, VM1 might have 1GB, VM2 might have 0.5GB, and VM3 might have 3GB, leaving 3.5GB for a fourth virtual machine.

 

Don’t use resource pools simply as folders

Resource pools should be used to allow greater performance to specific VM groups, not simply to logically separate your virtual machines. A better way is to label and sort them using folders. Right click a parent object and select All vCenter Actions, then either New Host and Cluster Folder, New Network Folder, New Storage Folder, or New VM and Template Folder. You can also place folders within folders. Move objects into your folder by right clicking and selecting Move To.

 

Be careful using shares to prioritize

Going back to our test/dev and production example, if you want to prioritize your production servers using shares, you must take into account the number of virtual machines within the resource pool. If you have more production servers than test servers, even with more resources allocated to the production pool, the test servers might end up with more CPU shares.

That sounds strange, but doing the math reveals why. Let’s say you have 100 VMs in production and 50 VMs in test/dev. You set the shares to 70% of CPU for Production and 40% for test/dev. If you’re splitting 100 CPU cores between them, then each VM in production gets 0.7 cores, while each VM in test/dev gets 0.8 cores.

If you change the number of VMs in your resource pools, you’ll need to adjust the shares to maintain performance levels according to these ratios. To edit resource pool settings, select it, click the Manage tab, and click Settings.

FIXED VS. EXPANDABLE POOLS

When adding a VM to a resource pool, the system will check to make sure the resource pool has enough resources. When configuring a pool, you’ll choose from either Fixed or Expandable reservation types to configure this check.

With Fixed, the system allows the operation or denies it based on whether there are enough enreserved resources.

With Expandable, which is the default setting, the system looks at the pool and its parent pool as well. If the parent pool has Expandable Reservation enabled, it can donate resources to the children resource pools beneath it. Be sure you do not end up overprovisioning in this case, and remember that even with Expandable selected, the system will never exceed the Reservation and Limit settings you have configured.

 

Still need help with resource pools or organizing your VMs and resources for top performance? A managed cloud solution will keep your applications available and in tip-top performance.

Recent Blog Posts

lunavi logo alternate white and yellow
4.5.2024
03
.
27
.
2024
Utilizing Bicep Parameter Files with ALZ-Bicep

Ready to achieve more efficient Azure Deployments? You can use Bicep parameters instead of JSON which opens new opportunities for deployment. Let Lunavi expert, Joe Thompson, show you how.

Learn more
lunavi logo alternate white and yellow
3.26.2024
03
.
04
.
2024
Anticipating Surges in Cyber Attacks and Bolstering Your InfoSec Defenses in 2024

Learn how to navigate 2024 with the right InfoSec defenses to protect your organization against a rising number of cyber attacks.

Learn more
lunavi logo alternate white and yellow
3.26.2024
01
.
03
.
2024
Microsoft Copilot is Re-Shaping the Innovation Frontier

Microsoft 365 Copilot has been released, and it's changing the way we work. More than OpenAI or ChatGPT, read how Copilot can seamlessly integrate with your workflow.

Learn more