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!
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:
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:
From here I can right-click on a host and see the performance counters available as shown below:
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:
This dashboard is configured through a wizard as shown below:
And configure thresholds for each of these counters:
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.
Memory: Critical when capacity of 2048 MB in 30 days, warning when at 4096 MB in 60 days.
Free disk space: Critical when capacity of 5 in 30 days, warning when at 10 in 60 days.
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.
Disk write bytes: Critical when capacity of 62914560 in 30 days, warning when at 47185920 in 60 days.
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.
Network received: Critical when capacity of 40000000 in 30 days, warning when at 30000000 in 60 days.
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:
Logical Disk – free disk space
Logical Disk – disk read bytes/sec
Logical Disk – disk write bytes/sec
Network – bytes received/sec
Network – bytes sent/sec
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.
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.
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.
This dashboard showed the SMB file shares on each of the HyperV servers (and empty circles for systems without SMB file shares);
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).
Adding the performance counter (in this case the execution time for the synthetic transaction).
And configuring the appropriate threshold for the counter (set to 100 for critical in this example).
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!
Measuring performance on Hyper-V http://msdn.microsoft.com/en-us/library/cc768535(v=bts.10).aspx