Troubleshooting Slow VM Performance in Hyper-V (Part 3)

If you would like to read the other parts in this article series please go to:

Introduction

In the previous article in this series, I explained that although performance monitoring and baseline tracking is the most accurate and reliable way to diagnose performance issues, sometimes time constraints make performance monitoring impractical. In these situations, there are “quick and dirty” techniques that you may be able to use to get to the bottom of the issue. In this article, I will continue the discussion by showing you some more techniques for diagnosing VM performance problems without delving into the Performance Monitor.

The Task Manager

Aside from the Performance Monitor, the Windows Task Manager is one of the best tools for troubleshooting virtual machine performance problems. There are a number of different ways in which the Task Manager can potentially be used to track down performance issues, but the exact methods that you will be able to use vary depending on the version of Windows that is running within the poorly performing VM.

You can open the Task Manager within a Hyper-V virtual machine by using the Hyper-V Manager to connect to the VM and then clicking on the Ctrl+Alt+Delete icon. At this point, Windows should offer you several different choices. Pick the Task Manager option.

If you have experience using the Task Manager, but have recently created a VM that is running Windows Server 2012, then you might be in for a bit of an initial surprise. To show you what I mean, check out Figure A. Figure A shows the Windows 7 Task Manager, which is very similar to the Task Manager used in some of the more recent versions of Windows. Now, check out the Windows Server 2012 Task Manager, which is shown in Figure B.

Image
Figure A: This is the Windows 7 Task Manager.

Image
Figure B: This is the Windows Server 2012 Task Manager.

At first glance, the Windows Server 2012 Task Manager appears to be practically useless. However, clicking the More Details icon reveals a much more substantial view of Task Manager, which I will be discussing throughout the remainder of this article.

Processes

When you are attempting to narrow down a performance problem, the Task Manager’s Processes tab is a good place to begin the troubleshooting process. You can see what this tab looks like in Figure C.

Image
Figure C: The Processes tab provides basic resource utilization information.

There are two main things that you should be looking for on the Processes tab. First, look for processes that do not belong. As you can see in the previous figure, the Windows Server 2012 Task Manager groups the processes into Apps, Background Processes, and Windows Processes. This grouping tends to make it relatively easy to locate processes that do not belong.

If you have trouble determining whether or not a process belongs on your virtual machine then you can compare the list of processes against that of a comparable healthy machine. If you locate any suspicious processes that you suspect may not belong on the virtual machine then you can do a Web search on the process name to determine its purpose.

The second thing that you should look for is processes that are consuming excessive resources. The Processes tab lists the CPU and memory utilization for each process. This makes it easy to locate any processes that are consuming abnormally high amounts of system resources.

If you do happen to find a process that is consuming excessive resources then the next step is obviously to figure out what is going on. The process could have a bug (such as a memory leak) or it could be that insufficient resources have been allocated to the VM and it is consequently unable to keep pace with the processes’ demands. In either case, you need to find out what is going on.

If you look at Figure C, you can see that most of the processes that are listed contain an icon just to the left of the process name that can be used to expand the process. Processes that offer this icon are actually related to system services. Expanding the process name reveals the name of the underlying service. You can right click on the service name to reveal a menu that allows you to stop the service, as shown in Figure D. If you need more comprehensive control over a service, you can go to the Services tab, which is shown in Figure E, or you can use the Service Control Manager, which you can access from the Open Services menu option shown in Figure D.

Image
Figure D: Right clicking on a service allows you to stop the service or open the Service Control Manager.

Image
Figure E: The Services tab is like a lite version of the Service Control Manager.

The Performance Tab

Although performance problems are often tied to an individual process or process tree, it is the overall resource utilization that matters most in a virtual server environment. That’s where the Task Manager’s Performance tab comes into play.

As you can see in Figure F, the Performance tab shows you a graphical view of how the virtual machine’s resources are being used. For example, the VM shown in the figure is equipped with a single virtual processor that is running at 1% utilization.

Image
Figure F: The Task Manager’s Performance tab provides hardware utilization statistics.

You can view similar statistics for memory and network performance by clicking on the appropriate links. You can also change the graph type by right clicking on the Performance tab.

One of the things that I really like about the Task Manager in Windows Server 2012 is that it is virtualization aware. If you look at the previous figure for example, you can see that the Task Manager identifies the physical CPU as an AMD FX(tb)-8120 Eight Core Processor. However, the statistical information at the bottom of the figure specifically indicates that the Task Manager is running within a virtual machine and that 1 virtual processor has been assigned.

Normally, if CPU, network, or memory resource usage is excessively high, the utilization can be traced to a specific process. You can then determine whether or not that process should even be running on the VM. If the process isn’t needed then you can remove it. If the process is needed then you can either allocate additional resources to the process or you may be able to reconfigure the application that is associated with the process so that the process runs more efficiently.

I have seen a couple of rare instances in which a VM’s overall resource utilization was high, but the problem was not related to a specific process. Further investigation revealed that the virtual machines in question simply had not been provisioned in a way that complied with Windows’ minimum hardware requirements.

Conclusion

In this article, I have discussed some ways in which the Task Manager can be used as a tool for troubleshooting VM performance. In the next article in this series, I want to talk about per user workloads and I want to discuss the Open Resource Monitor link that is shown at the bottom of the previous figure.

If you would like to read the other parts in this article series please go to:

1 thought on “Troubleshooting Slow VM Performance in Hyper-V (Part 3)”

Leave a Comment

Your email address will not be published. Required fields are marked *

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Scroll to Top