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

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 spent quite a bit of time talking about how you can use the Task Manager as a tool for troubleshooting slow virtual machine performance. In this article, I want to continue the discussion by showing you a few more things that you can do with the Task Manager.

User Workloads

Although the previous article showed you how to track down processes and services that were consuming excessive system resources, that article ignored one fundamental truth about Windows servers. Windows servers almost always support some sort of user workload. In other words, it isn’t just the core system services or processes related to infrastructure applications that consume resources. Often times user activity is directly responsible for generating a load on a server. This is a very important aspect to consider when it comes to troubleshooting slow virtual machine performance.

If you look at Figure A, you will see the Task Manager open to the Processes tab. This tab lists the various processes that are running on the server. As you can see in the figure, the Processes tab breaks down the processes into categories such as Apps and Background Processes. The one thing that is missing however, is user related process information.

Image
Figure A: The Processes tab does not display user information.

Of course this is not to say that you cannot use the Tasks Manager to get user specific information. You can. You might have noticed in the previous figure that the Task Manager contains a Users tab. This tab, which is shown in Figure B, lists all of the users who are currently logged onto the server. As you can see in the figure, the Task Manager actually breaks down the overall workload on a per user basis. For example, in the figure you can see that the Administrator is responsible for 0.5% of the total CPU usage and is consuming 81.3 MB of memory.

Image
Figure B: The Users tab breaks down the server’s workload on a per user basis.

So what do you do if you spot a user who is consuming an excessive amount of system resources? Well, you could select the user and then click the Disconnect button that is shown at the bottom of the screen. This would disconnect the user from the server, and would theoretically release the resources that the user was consuming.

Even so, simply booting a user off of the server is a pretty reckless thing to do. It’s usually better to see if you can determine what the user is doing that is causing the excessive resource consumption. Fortunately, this is pretty easy to do.

If you look at Figure C, you can see that the listing for each individual user is expandable. When you expand a user, the Task Manager shows you which processes the user is running and what level of resources each process is consuming. This allows you to determine exactly what it is that the user is doing to bog down your virtual machine.

Image
Figure C: You can see which of the user’s processes are consuming the most resources.

Before I move on, I want to point out that the method of analyzing user workloads through Task Manager that I just showed you is unique to Windows Server 2012. Previous versions of Windows Server (and even Windows desktop operating systems) can also analyze user workloads, but you will have to use a slightly different method to do so.

If you look at Figure D, you can see the Task Manager as it existed in Windows Server 2008 R2. The first thing that you might notice about this version of the Task Manager is that the list of processes is very short. The reason for this is that user related processes are not shown by default. If you want to view user related processes, you must select the check box at the bottom of the window.

Image
Figure D: The Windows Server 2008 R2 Task Manager does not show user specific processes by default.

When you select the Show Processes from all Users check box, the list of processes grows considerably, as shown in Figure E. Unfortunately however, the list is arranged in a bit more haphazard of a manner than it is in the Windows Server 2012 Task Manager.

Image
Figure E: The list of processes grows when you select the Show Processes from all Users check box.

As you look at the previous figures, you might have noticed that even the Windows Server 2008 R2 Task Manager contains a Users tab. Unfortunately however, the Users tab does not break down system workload information on a per user basis as it does in Windows Server 2012. Instead, the Users tab simply lists all of the user sessions and allows you to either disconnect a user or log them off. You can see what the Users tab looks like in Figure F.

Image
Figure F: This is the Windows Server 2008 R2 Task Manager’s Users tab.

Getting More Detailed Performance Information

In the previous article in this series, I wrap things up by showing you the Task Manager’s Performance tab. As you can see in Figure G, this tab provides you with a graphical view of the aggregate CPU, memory, and network usage for the server.

Image
Figure G: The Task Manager’s Performance tab displays aggregate usage information for CPU, memory, and network resources.

As you look at the figure above, you might have noticed a link in the bottom portion of the window labeled Open Resource Monitor. Clicking this link causes Windows to open a tool called that Resource Monitor.

I tend to think of the Resource Monitor as an intermediate level performance troubleshooting tool. The Resource Monitor is a little bit more advanced than the Task Manager (even though it has a lot of similarities to that Task Manager). At the same time however, the Resource Monitor is a less advanced than the Performance Monitor.

If you have ever worked with the Performance Monitor then you know that it is up to you to figure out which counters to use (there are hundreds to choose from). You also have to know how to interpret the values of those counters. The Resource Monitor is different in that it does not require you to choose a set of counters. Instead, the Resource Monitor is designed to use the most important counters and display the counter information in an intuitive manner that makes it easy to diagnose system performance.

More importantly however, the Resource Monitor is able to tie resource consumption directly to individual processes and services similarly to the way that the Task Manager does. The difference is that you can get more detailed performance information than was possible through the Task Manager.

Conclusion

In this article, I have explained that virtual machine performance problems are sometimes related to individual user workloads, and that it is important to know how to track down those workloads. I also explained that the Resource Monitor is a good intermediate tool for those who need more information than the Task Manager provides, but who do not want to delve into the Performance Monitor. In the next article in this series, I will begin talking about the most important aspects of working with the Resource Monitor.

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

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