1 Comment

Capacity Management is well established practice in
enterprise data centers. Effective capacity management strives to accomplish
two objectives:

  • Efficiency: Make efficient use of existing
    capacity and minimize any waste of computing resources

  • Availability: Leave enough capacity headroom to
    accommodate any spikes in resource demands.

These two capacity management objectives often conflict with
each other. Rightsizing resource capacity to achieve high efficiency usually
comes at the cost of sacrificing capacity availability. Similarly provisioning
additional capacity buffer tends to reduce capacity efficiency. Consequently
Capacity Management is a balancing act and tends to become more of an art than

Capacity Management in virtual environment is more challenging for couple reasons. First, the physical resources in virtual
environment are shared across multiple virtual machines. Second, vSphere has
its own advanced features, such as DRS and Memory optimizations, which manage
resource allocations continuously and dynamically.  Several VMware customers have tried to develop homegrown solutions based on Excel and/ or
scripts. Unfortunately these solutions either tend to ignore these nuances in virtual deployments, and often
over-estimate capacity needs. Or they
provide point-in-time snapshot of capacity and need to run regularly on an ongoing basis. vCenter CapacityIQ is the purpose built tool from
VMware that takes into account these nuances and helps you address capacity
management challenges in virtual deployments. As the CapacityIQ product page
states, it will help you with Capacity Awareness, Capacity Optimization and Capacity Prediction. In this series of posts, I will elaborate on each of these use cases, starting with popular one – Capacity Optmization. As always, you can also download and test fully-functional
evaluation versions of CapacityIQ free for 60 days here.

includes several views to help you optimize the use of existing capacity in the virtual

  • Powered-off virtual machines

  • Idle virtual machines
  • Oversized virtual machines
  • Undersized virtual machines

You can customize these lists in several ways e.g.

  • select specific clusters by navigating the inventory tree in the left pane
  • change the time interval used for the analysis
  • configure the settings used to qualify the powered-off/idle/oversized/undersized thresholds.

Powered-off virtual machines

CapacityIQ identifies virtual machines that have been placed
in a powered-off state for a significant portion of time. The motivation behind
this analysis is to identify virtual machines that are rarely or never used.
Such virtual machines are candidates for decommissioning and represent an
opportunity to reclaim unused capacity.

CapacityIQ identifies Powered-Off Virtual Machines based on a
threshold setting that’s configurable from CapacityIQ global settings. Using the graph below, a virtual machine is identified as Powered-Off in a given interval, if the total
time it is powered-off (% Time Powered-Off) is greater than the configured % Time Powered-Off Threshold.See the
CapacityIQ global settings screenshot under ‘Idle virtual machines’ 
to see where you configure the % Time Powered-Off Threshold.



Idle virtual machines

CapacityIQ identifies virtual machines that show an
insignificant level of capacity usage on one or more resources most of the
time. The motivation behind this analysis is to identify virtual machines that
have practically fallen out of use for any number of reasons – e.g. users are
no longer running workloads within the virtual machine. Such virtual machines
are candidates for decommissioning and represent an opportunity to reclaim
unused capacity.

identifies Idle Virtual Machines based on capacity usage of the following

  • CPU
  • Disk I/O
  • Network I/O

For each of these resources, you can set utilization
threshold from the CapacityIQ Global Settings. For a
given time interval, CapacityIQ calculates the total time during which capacity
usage is below a given Usage Less Than threshold.
 If the percentage of this total idle time
is more than % Time Idle Threshold, then the VM is identified as idle for that
particular resource.
You can configure CapacityIQ to
identify idle virtual machines based any one or all of these thresholds.
The following figure illustrates how CapacityIQ identifies
Idle Virtual Machines.

The thresholds for Powered-off and Idle virtual machines can be configured from the same CapacityIQ Global Settings screen, shown below.


I will cover the Oversized and Undersized virtual machines views in the next post. As always, let me know any comments, questions you have.