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

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


In my previous article in this series, I wrapped things up by mentioning that the Resource Monitor was a good intermediate tool for performance troubleshooting. The Resource Monitor provides more granular detail than what is available through the Task Manager, but it isn’t as complex as the Windows Performance Monitor. In this article, I want to familiarize you with using the Resource Monitor to troubleshoot performance problems.

As you can see in Figure A, the Resource Monitor makes use of a tabbed display. There is an Overview tab, and there are also dedicated tabs for CPU, Memory, Disk, and Network. The Overview tab provides a lot of good information, but you can use the CPU, Memory, or Disk tabs to access more granular information.

Figure A: This is the Resource Monitor’s Overview tab.

The Overview Tab

The Overview tab, which you can see in the figure above, is designed to give you a summary view of the system’s current performance. Although this tab looks fairly simple at first glance, there are several helpful pieces of information found on this tab.

As you can see in the figure above, the Overview tab contains collapsible sections for CPU, Disk, Network, and Memory. If you expand one of these sections (just as the CPU section is expanded in the figure above), you will see a listing for each process that is running on the machine. The Resource Monitor also lists each process’s process ID (PID), status, and a description of what the process is.

In addition, each section also contains some section specific information. For example, the CPU section shown in the figure above displays the CPU core number that is being used for each process as well as each process’s average CPU usage and the number of threads used for each process. The actual information that is displayed varies considerably from one section to the next.

The most noticeable item on the Overview tab tends to be the collection of graphs on the right side of the screen. As you might expect, these graphs provide an overview of the current CPU, Disk, Network, and Memory usage. Although these overview graphs can be helpful for quickly assessing the system load, there is more to the graphs than might at first meet the eye.

If you look back at the previous figure, you will notice that each of the section headers contains a green icon and a blue icon. These icons are used to convey the resource’s status at a glance. For example, in the case of the CPU section, the green icon reflects the current CPU usage, while the blue icon indicates the highest CPU load that has been recorded. Similarly, the green disk icon indicates the current I/O load, while the blue icon reflects the highest recorded I/O load (in terms of the highest percentage of the overall I/O capacity).

The icons for network and memory work a little bit differently. The green network icon indicates the current level of network I/O, measured in Kbps. The blue network icon indicates the current percentage of network utilization.

The green Memory icon reflects the number of hard faults occurring each second, while the blue icon measures the percentage of physical memory that is currently in use.

As you may recall, a few paragraphs back I said that there is more to the on screen graphs than meets the eye. If you look back at Figure A, you will notice that the lines on each graph appear in green and blue. The graphs therefore serve as a visual representation of the information presented next to the green and blue icons within each section heading.

Before I move on, the graphs have one more trick that I want to show you. If you look back at Figure A one more time, you will notice that there is a check box displayed to the left of each process name. If you select the checkbox for a process then the statistics related to that process will be added to the graph.

To show you what I mean, check out Figure B. As you can see in the figure, I have selected the checkbox for a process named WINWORD.EXE, which corresponds to Microsoft Word. I then switched over to Microsoft Word and clicked Save a few times as a way of consuming some system resources. Look at what happened to the graphs. As you can see in the figure, all of the activity related to Microsoft Word is displayed in orange.

Figure B: Activity for the selected process is displayed in orange.

If you are trying to track down a performance problem then the process check boxes are a great tool for helping to determine the impact that an individual process is having on your virtual machine. The thing that is so helpful is that when you select a check box information related to the process is plotted on all of the graphs. This allows you to see at a glance the impact that the process is collectively having on the virtual machine’s CPU, disk, network, and memory.

The CPU Tab

The Overview tab allows you to view system activity at a glance, but if you need more detailed information, you can use the CPU, Memory, Disk, and Network tabs.

As you can see in Figure C, the CPU tab provides a CPU Total graph, which plots overall CPU usage. It also provides graphs for each virtual CPU.

Figure C: The CPU tab provides a number of useful statistics.

Furthermore, sections exist for Processes, Services, Associated Handles, and Associated Modules. The Associated Handles and Associated Modules sections are empty by default. However, when you select the check box for a process, these sections are populated with information that is directly related to the selected process.

For example, in Figure D, the WINWORD.EXE process is selected. The Services section is empty because there are no services that are directly tied to Microsoft Word. However, the Associated Handles and Associated Modules sections are populated with information about the handles and modules that the WINWORD.EXE process is using. Likewise, Microsoft Word related performance data is plotted in orange on the graphs.

Figure D: The Resource Monitor displays the associated handles and the associated modules for the selected process.

The Memory Tab

The Memory, Disk, and Network tabs work very similarly to the CPU tab. Each tab shows an overview of the virtual machine’s overall resource usage. For instance, you can see the Memory tab’s default configuration in Figure E.

Figure E: The Memory tab displays the current memory usage.

The Memory tab also allows you to select an individual process to see the impact that the process is having on the resource that you are looking at. For example, you can see the current memory usage for the WINWORD.EXE process in Figure F.

 Figure F: This view shows the memory usage for the WINWORD.EXE process.


As you can see, the Resource Monitor provides valuable information that can be used to help diagnose virtual machine performance problems. In Part 6 of this article series, I plan to conclude the series by showing you a few more things that you can do with the Resource Monitor.

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

About The Author

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