Pop quiz: How many virtual machines and physical servers are currently running on your production environment? If you can answer that, congratulations! Next question: Identify the top 10 physical or virtual machines based on resource utilization.
For most IT organizations, both of these questions can be difficult to answer. Fortunately, there are ways to implement monitoring in an automated way. In this tip, I'll present some advice related to monitoring VMs and host computers in a production environment.
Managing virtual machines vs. managing physical machines: Similarities
In many ways, the tasks associated with monitoring virtual machines are similar to those of working with physical ones. Organizations that have invested in centralized monitoring solutions can continue to rely upon them for gaining insight into how applications and services are performing. Examples include:
- Establishing baselines: A baseline helps you determine the standard level of resource utilization for a physical or virtual workload. Details to track typically include CPU, memory, disk, and network performance.
- Root-Cause analysis / Troubleshooting: When users complain of slow performance, it's important for IT staff to be able to drill-down into the main cause of the problem. Performance statistics can often help identify which resources are constrained. Ideally, that will help identify the source of the problem and provide strong hints about resolving them.
- Generating alerts: In order to proactively manage performance, IT staff should be alerted whenever resource utilization exceeds certain thresholds.
All of these tasks are fairly standard in many IT environments and are also applicable to working with virtual workloads.
Managing virtual machines vs. managing physical machines: Differences
Environments that use virtualization also have some unique challenges related to performance monitoring. Since it's quick and easy to deploy new VMs, keeping track of them is a huge challenge. Some additional features and functions that can be helpful include:
- Mapping guest-to-host relationships: While virtual machines have their own operating system, resource utilization is often tied to other activity on the same host server. Virtualization-aware monitoring tools should be able to uniquely identify VMs and relate them to the physical computers on which they are running.
- Automated responses and dynamic reconfiguration: In many cases, it's possible to perform automated tasks in reaction to performance-related issues. For example, if CPU usage of a single VM is slowing down the entire host, VM priority settings can be adjusted. Or, when excessive paging is occurring, the VM's memory allocation can be increased.
- Broad platform support: There's a good chance that you're supporting many more OS versions and flavors for VMs than on physical machines. A good performance monitoring solution will support the majority of virtual operating environments.
- Reporting and capacity planning: The primary purpose of performance monitoring is to facilitate better decision-making. Advanced reporting features can help track untapped resources and identify host servers that are overloaded. Tracking historical performance statistics can also be very helpful.
Choosing the right tools for the job
Most operating systems provide simple tools for troubleshooting performance issues on a single or a few computers. In environments that support more than a few VMs, automated performance monitoring and management tools are practically a must-have. Figure 1 provides some details into features that can be useful.
Figure 1: Features to look for in performance management tools
Overall, many of the standard IT best practices apply equally to monitoring physical and virtual machines. When searching for tools to get the job done, however, there are certain features that can dramatically reduce the time and effort required to gain insight into production performance.
About the author: Anil Desai is the author of numerous technical books focusing on the Windows Server Platform, Virtualization, Active Directory, SQL Server, and IT management. Most recently, he has written The Rational Guide to Managing Microsoft Virtual Server and The Rational Guide to Scripting Microsoft Virtual Server. He has made dozens of conference presentations at national events and is also a contributor to technical magazines.