Announcing VM Reservations and Limits Card

CloudPhysics VM Reservations and Limits

CloudPhysics is happy to announce a new card called “VM Reservations and Limits” today. Reservations and Limits are knobs available to the vSphere admin to control memory and CPU resources available to VMs. The VM Reservations & Limits card is designed to give you an easy way to track your VM resource allocation settings and check for any unintended resource misconfigurations. On this card, you will find a list of all VMs with any reservations or limits for CPU and memory.

We use red and amber color indicators on limit values to give you an indication of how much  they will constrain the resources that can be used by that VM. Gray, unmarked values indicate no constraint. Amber indicates some limit constraint, while red indicates significant constraint. Limits are color-coded as they are less frequently used than reservations, are often intended to be used only temporarily, and seem to be more often accidentally misconfigured. Reservations are not color-coded since nearly any reservation value can be valid.

Below is a short summary of how reservations and limits work. We recommend referring to VMware’s vSphere Resource Management Guide for a more comprehensive review of these topics.

Reservations:

Used to specify guaranteed lower bound for resources, even when the resources are over committed.

Example use:
  • To ensure that important VMs are always able to get sufficient resources to run with at least minimally acceptable performance.

For example, if a VM is running an important application, it is a good idea to specify a memory reservation that can avoid heavy swapping and prevent thrashing. This ensures that the VM’s performance won’t fall off a cliff when the resources are over committed.
Implications:

  • Creating a VM with high CPU or memory reservation may significantly reduce the number of VMs that can be run on the cluster (when HA admission control is enabled and using the default tolerate ‘n’ host failures policy).

Limits:

Used to specify an upper bound for resources, even when the resources are under committed.

Example uses:
  • When you start with a small number of VMs, the VMs often perform very well as there is no resource contention. Performance can deteriorate, however, as you add more and more VMs since the VMs start experiencing resource contention. As a result, the initial set of users may start complaining that their VMs are experiencing performance degradation. You can manage their expectations by setting limits at the beginning, so that the VMs operate with fewer resources and the users experience some degree of consistency in their VMs’ performance.
  • Limits can be useful for testing an application under various resource availability scenarios.
  • Another potential use case is quarantining a VM suspected of running malware, to prevent it from using more than a specified amount of resources.
Implications:
  • Creating a VM with CPU or memory limits will throttle that VM from using more CPU or memory, even if the host is idle or has excess capacity.

Additional Reading: