Virtualization Best Practices - Faster Processors and Performance

In some cases, the speed of the processors leads to better performance. However, this isn’t always the case. For example, let’s consider a VM created by using a physical-to-virtual conversion. This workload was previously running on an older Pentium 3 Xeon processor at 700MHz and is running a custom line-of-business (LOB) application.
Now that it’s in a VM, will the workload run more quickly? Depending on the type of application, it may not. That doesn’t mean the extra processing power from faster processors goes to waste, because it provides extra headroom for workloads to grow and a resource for other VMs. But you do need to take this fact into account.

CPU-Bound or I/O-Bound Workloads
Not all workloads are capped by the processing power available to the VM. Some workloads, such as a SQL Server, are generally bound to a greater extent by the limits of memory and the disk subsystem than by the processor. In this case, buying a faster processor won’t necessarily provide faster performance to the VMs—use the money you save to invest in memory or a faster storage subsystem. Once the host has been deployed, administrators often use management tools to determine how the host is performing. But because of the virtual nature of the processors, monitoring a virtual system isn’t as simple as looking at the Task Manager.

Traditionally, administrators used Windows Task Manager to get a quick glance at what was happening on the system. However, because of the architecture of Hyper-V, Task
Manager doesn’t show the CPU usage of VMs. Task Manager running in the parent partition has no way of displaying that information; instead, you need to use Perfmon.

Perfmon, short for Performance Monitor, is Microsoft’s tool to examine performance data. This data can be as simple as CPU utilization or as complex as context switches between Ring 0 and Ring 3.

By looking at the Hyper-V performance counters through Perfmon, you can determine if the system has room for more VMs or, conversely, if the system is oversubscribed (too many VMs running on the host).

Using Perfmon to monitor the host is easy. From the Start menu, select Administrative Tools, and then select Reliability And Performance Monitor. Click Performance Monitor in the list on the left.

By default, only one item is tracked in Perfmon: % Processor Time. Unless you’re interested in the processor utilization of the parent partition only, you’ll need to add some counters.

The processor-performance counters refer to the number of logical processors (LPs) in the system. A logical processor is a unit of processing power—for example, if you have a system with a single CPU socket and a single-core, non-hyperthreaded processor, you have one LP. Change that processor to a dual-core processor, and you have two LPs. Adding Hyper-Threading? Make it four logical processors.

To add a performance counter, you click the green + sign or press Ctrl-I. A large number of Hyper-V–related performance counters are available, but we’re interested in a couple in particular:

Hyper-V Hypervisor Virtual Processor, % Total Run Time. Under Instances Of Selected
Object, you’ll see a few options. _Total provides a sum of all the VPs allocated to all running VMs. You can also add individual VPs allocated to a VM.

Hyper-V Hypervisor Root Virtual Processor, % Total Run Time. This is the percentage of the time that the logical processors selected are executing instructions in non Hypervisor–based code in the root/parent partition.

Adding these two values gives you the total CPU utilization of the host executing virtualizationrelated code. The closer the value gets to 100%, the more heavily loaded the system is.

Source of Information : Sybex Windows Server 2008 Hyper-V Insiders Guide to Microsofts Hypervisor

No comments:

Cloud storage is for blocks too, not just files

One of the misconceptions about cloud storage is that it is only useful for storing files. This assumption comes from the popularity of file...