Learn how to better manage your Hyper-V environment and improve performance. In this article, we’ll walk through how to optimally configure your VMs and servers. Then, we’ll provide a number of tips for monitoring your Hyper-V VMs.
A key aspect of optimizing and monitoring performance is understanding the requirements for the workloads. You need to identify these requirements, along with the dependencies of the software that you’ll run, and then categorize the various types of resource utilization parameters. These are the high-level considerations:
- Memory – What is the amount of RAM that is necessary for a specific VM? Is this amount adequate for all levels of application activity?
- CPU – Learn if the applications are typically CPU-intensive. Is it possible the performance gains will be seen with multiple CPUs?
- Storage Options – Account for all speed and capacity requirements for storage that supports the VMs. Will the applications run better using network storage?
- Network – Does any VM need access to other systems—or to the Internet? Which of these VMs will generate heavy traffic?
Gather this information from historical statistics that your organization may be collecting, or think through how best to conduct the estimates. Either approach will be helpful in identifying potential performance bottlenecks.
Monitoring Hyper-V Performance
Many sysadmins keep Task Manager and Performance Monitor front and center as their basic monitoring tools. While these tools are simple dashboard tools that are easy to sort and examine, the statistics for both the child and parent partitions might be misleading.
Keep in mind: a primary virtualization goal is to ensure complete isolation among partitions. As Ben Armstrong explains in “Hyper-V, Virtual Machine CPU usage and Task Manager”, basic standard monitoring tools probably won’t provide a complete picture. The question becomes: What should you be monitoring? And What is Hyper-v?
Hyper-V includes a number of monitoring tools, which you can access from the local computer or a remote computer that runs the Performance Monitor app. Though most of these tools are basic, and lack advanced features, it’s good to become familiar with the use of each one:
- Hyper-V Hypervisor
- Hyper-V Hypervisor Partition
- Hyper-V Hypervisor Virtual Processor
- Hyper-V Hypervisor Logical Processor
- Hyper-V Virtual IDE Controller
- Hyper-V Virtual Network Adapter
- Hyper-V Virtual Machine Summary
- Hyper-V Virtual Machine Bus
Of special note is the Hyper-V Hypervisor Logical Processor performance counters, from which you can get CPU usage information as you work to identify bottlenecks.
You may need more capability than what these basic tools offer. 5nine Manager offers backup and restore features that are much more powerful and flexible; and the ability to configure, manage and migrate a large array of VMs across your entire infrastructure. It’s the only platform that provides a single access point for Hyper-V administration, monitoring and recovery.
Tip 1 — Don’t Rely on Task Manager Data Within a VM
The first rule is don’t ever measure the performance of a VM from within a VM, because it can only see its little keyhole view of the world. Here’s a simple test to understand this: run one VM on a host, run an application (such as Prime95) that maxes out the virtual CPU(s).
Task Manager will report 100% CPU, but if you now start another VM and run the same application in that VM, Task Manager will still report 100%—but it’s actually running at half the speed compared to earlier. This example disregards additional processors in the host, but clearly demonstrates the Task Manager in VMs lies.
Tip 2 — Establish a Performance Baseline
The second rule for performance monitoring, whether physical or virtual, is to create baselines when things are humming along. Unless you’ve got a baseline from when performance was good and users happy, you have nothing to compare with when issues arise. Learn how to create Data Collector Sets: log for a few days, and archive the results.
Tip 3 — Use Counters That Are Specific to Hyper-V
When using Performance Monitor in the host, be aware that it might lie as well. Don’t use normal counters as they often don’t understand VMs, use Hyper-V specific counters. For processor performance use the Hyper-V Hypervisor Logical Processor% Total Run Time counter; this will let you monitor physical processors in the host. For VMs use Hyper-V Hypervisor Virtual Processor% Guest Run Time, which lets you monitor virtual CPUs for each running VM (or as a total). As a rule of thumb, less than 75% for this counter (total for all VMs) is healthy, over 75% is a warning sign, and more than 85% should definitely be investigated.
Tip 4 — Keep an Eye on Committed Memory
In today’s Hyper-V world of BDM (Before Dynamic Memory), you should monitor MemoryAvailable Mbytes on the host. Healthy is more than 10% of RAM free, at less than 10% it’s a warning that something is going on. If it’s less than 100 MB, it needs to be looked at. Veterans will know that “high pages per second” means a low memory condition, but there are cases where this isn’t true (due to memory mapping of files). Use the MemoryCommitted Bytes counter to see how much memory each VM is using when planning your VM memory allocation.
Tip 5 — Provide Adequate Memory Buffer
In the physical world, as sysadmins, we always like to have a bit extra up our sleeve. If you were designing a server that you knew would use about 1.5 GB of memory you’d install 2 GB just to be on the safe side. In the VM world this is adjusted with the buffer, the default is 20%. For workloads that need a lot of file cache increase this value. This screen is also where you can assign a higher or lower weight to each VM, which will allow a VM to have a higher (or lower) priority for memory as the host starts running low on available memory.
Tip 6 — Watch the Disk Latency
Monitoring disk is done via the LogicalDisk(*)Average Disk SecRead or Write which indicates your disk latency. Healthy is less than 10ms (0.010). If it goes up to 15ms or above (0.015), it’s time to check it out. At 25ms or above (0.025) the situation is critical.
Tip 7 — Network Performance
For network monitoring use the counter Network Interface (*)OutputQueue Length. Less than 1 on average is healthy, the warning is when it’s above 1 on average, and critical is when it’s 2 or more on average.
We trust that this article is useful for you as you seek to configure a Hyper-V environment for optimal performance. Below you can find other resources to dive deeper into this important sysadmin subject.
- Microsoft provides a detailed article on optimizing Hyper-V performance.
- Get Iometer to monitor disk performance tasks.
- Detailed technical information on how to measure performance in Hyper-V.
- Microsoft also provides an extensive set of performance tuning guidelines.
- The Performance Analysis of Logs PAL is a PowerShell script for aggregating and analyzing performance logs. You decide which performance counters you need to collect and analyze.
Paul Schnackenburg started in IT when DOS and 286 processors were the cutting edge. He works part time as an IT teacher at a Microsoft IT Academy. He also runs Expert IT Solutions, a small business IT consultancy on the Sunshine Coast of Australia. Paul writes in-depth technical articles, focused on Azure, Microsoft 365, Hyper-V, System Center, private and hybrid cloud. He has MCSE, MCSA, MCT, MCTS and MCITP certifications. He can be reached at email@example.com, follow his blog atTellITasITis, http://tellitasitis.com.au/.