A little while back I did a blog post discussing how impressed I was with some reports which were available for VMware Host systems but aren’t available for Hyper-V Host systems entitled Oversized and undersized VMs plus one IT geek meltdown. The main purpose of the blog post was to a practical example of how beneficial it can be to see what VM’s in an environment are either oversized or undersized. I received a lot of good feedback on this blog post including several recommendations about how to gain insights into the capacity available for Hyper-V servers. I decided to take these ideas, test them in my lab environment and write them up in a series of blog posts.

This is the second blog post on this topic – using the OpsLogix Capacity Management Pack One to report on Hyper-V capacity!

 

My environment:

One hyper-V host (HyperV02), and one Hyper-V cluster (HyperV03 and HyperV05). I recently re-architected my environment to use an SMB 3.0 file share which is hosting most of the virtuals running on HyperV03 and HyperV05. HyperV02 is also a host which runs a minimal number of virtual machines.

 

What am I looking to see for capacity planning?

To effectively determine capacity for my Hyper-V environment there are four KPI’s for servers (Processor, Disk, Memory, Network) and seven key metric concepts that I want to consider:

  • Processor utilization
  • Disk Capacity
  • Disk bytes read/write
  • Memory available
  • Network bytes sent/received

There are two other items which I consider relevant for capacity planning in my environment:

  • My SMB share information is also very relevant to my Hyper-V environment since my SMB 3.0 file share runs the majority of my virtual machines.
  • I also may need to know the performance of an application to determine trend and establish methods to identify when to add capacity for the application. I will be focusing on these concepts as part of this blog post.

 

Where to download it? Information on the OpsLogix capacity intelligent pack is available for download at http://www.opslogix.com/products/capacity-management-pack.

For my sample management pack, to provide a group for the Hyper-V servers I am using the free VMM dashboard pack available at: http://www.systemcentercentral.com/pack-catalog/virtual-machine-manager-dashboards-from-the-opsmgr-unleashed-team/. This pack includes a group for the Hyper-V hosts (Hosts in VMM) which I use in the sample Hyper-V capacity pack.

 

 

What requirements are there to integrate it with Operations Manager?

The OpsLogix management pack is installed in your environment and after re-opening the console the new dashboards and reports are available in Operations Manager.

 

 

What functionality does the OpsLogix management pack provide?

The OpsLogix management pack provides a capacity widget, a capacity dashboard and a forecast report. These are shown below:

Capacity Widget:

image

Capacity Dashboard:
image

Forecast report:
image

 

What counters should I track for capacity planning in Hyper-V?

By opening a diagram view for the Hosts in VMM I can see the members as shown below:

image

From here I can right-click on a host and see the performance counters available as shown below:

image

From this view we can see the available objects, counters and instance which we will use to track capacity for Hyper-V.

Configuring the OpsLogix Intelligent Capacity Pack for Hyper-V servers:

After adding the required management packs (the OpsLogix intelligent capacity pack and the VMM dashboard pack), we can now add a new dashboard type as shown below using the OpsLogix Capacity Dashboard:

image

This dashboard is configured through a wizard as shown below:

image

Add the group from the VMM dashboard pack:
image 

Add the relevant performance counters:
image

And configure thresholds for each of these counters:

image

To set these as shown above so that they are checked, click on the configure button for each value to specify what thresholds will be configured. The following is what I configured for thresholds for each of these performance counters.

 

What values for the thresholds?

Processor: Critical when capacity of 90 in 30 days, warning when at 80 in 60 days.

image

Memory: Critical when capacity of 2048 MB in 30 days, warning when at 4096 MB in 60 days.

image

Free disk space: Critical when capacity of 5 in 30 days, warning when at 10 in 60 days.

image 

For my disk read and write values, I used the following assumptions:

My normal drives are SATA 6 which support up to 600 million bytes per second.  However, most 7200 rpm drives only get about 120-150 MByte/sec. 1 megabyte per second = 1048576 bytes per second. So at 150*1048576 = 157286400 for both read and write.  Assuming thresholds at so at 30% and 40% we get values of 47185920 and 62914560.

Disk read bytes: Critical when capacity of 62914560 in 30 days, warning when at 47185920 in 60 days.

image

Disk write bytes: Critical when capacity of 62914560 in 30 days, warning when at 47185920 in 60 days.

image

For my network send and receive values, I used the following assumptions:

Ethernet can handle 10,000,000 bits per second. So for gigabit Ethernet I am assuming 1,000,000,000. I am configuring a warning at 60% and critical at 80%. To split this among send and receive I cut each value in half to 30% and 40% (or 30000000 for warning, and 40000000 for critical).

Network sent: Critical when capacity of 40000000 in 30 days, warning when at 30000000 in 60 days.

image

Network received: Critical when capacity of 40000000 in 30 days, warning when at 30000000 in 60 days.

image

 

What were the results for my Hyper-V lab environment?

Once my Hyper-V capacity dashboard was created, I was able to assess the capacity for my Hyper-V systems. Screenshots from my environment are shown below for dashboards and reports:

Processor

image

Memory

image

Logical Disk – free disk space

image

Logical Disk – disk read bytes/sec

image 

Logical Disk – disk write bytes/sec

image

Network – bytes received/sec

image

Network – bytes sent/sec

image

Using the dashboard you can identify warning and critical thresholds which will generate an alert and let you know when you are projected to cross either the warning or critical thresholds. As an example, for my Hyper-V environment I can project when a drive will run out of space and receive an alert three months before the condition is projected to occur.

Reports:


The OpsLogix Capacity Planning report provides a quick way to forecast data based upon the available historical data. The example below shows my HyperV05 projected Processor %Total Run Time forecast for the next couple of weeks.

image

 

The steps above provide the steps I used to create these dashboards for my Hyper-V systems in Virtual Machine Manager. Just to make life easier I am also sharing this sample management pack for download from SystemCenterCentral at: http://www.systemcentercentral.com/pack-catalog/sample-hyper-v-capacity-dashboards/

 

 

What about the SMB share?

For the SMB file share I created a capacity dashboard scoped to the Operations Manager Agent Managed Computer group.

image

Showing the SMB Client Share Data Requests/sec value.
image

This dashboard showed the SMB file shares on each of the HyperV servers (and empty circles for systems without SMB file shares);

image

 

What about my application performance?

Synthetic transactions can be used to track performance of a variety of items including performance for websites, databases and more. For my example, I’m showing the performance for connectivity to a database in my environment.  This is done by choosing the appropriate object (which could be any object which has a performance counter including a synthetic transaction such as in this example).

image

Adding the performance counter (in this case the execution time for the synthetic transaction).

image

And configuring the appropriate threshold for the counter (set to 100 for critical in this example).

image

 

Summary: The OpsLogix capacity intelligent management pack provided a simple way to identify capacity issues in my Hyper-V environment and to alert me ahead of time if capacity issues were projected to occur soon in my systems! This also provided a quick way to identify trends for my SMB file share usage and my application performance (via synthetic transaction testing).

 

P.S. Thank you to Aaron Ebertowski and Larry Rayl for the additional thoughts on this topic!

 

Additional reference:

Measuring performance on Hyper-V http://msdn.microsoft.com/en-us/library/cc768535(v=bts.10).aspx