Using Task Manager with 64+ logical processors

Posted by bink on October 28 2011, 9:06 PM.

The pictures below relate to a feature that server admins and people with access to mega-PC setups with lots and lots of logical processors often ask us about. One key thing to note up front is that here we are talking about logical processors, so if you have a system capable of hyper-threading, you will see multiple logical processors for each physical processor.

For those of you who have access to one of these many-processor systems, you know that the task manager CPU charts in Windows 7 have a few limitations:

  • Lack of real-time comparisons: When you are looking at a CPU graph for lots and lots of logical processors, it is the anomalies that are interesting. At scale, it is pretty hard to compare moving line graphs of a 60-second window of CPU utilization to understand what is going on.

  • Tiny graphs: When you get to the 64+ logical processor range, the graphs get pretty small. If you are trying to figure out which processors are being heavily used, you really have to squint to figure it out. When you get over 256 logical processors, you can barely read the charts at all.

  • Finding the processor ID: If you do identify an anomalous graph, there is no easy way to get the corresponding processor ID.

Below is the Windows 7 Task Manager CPU performance tab on a system with 160 logical processors.

CPU Usage History table contains 160 tiny cells, each showing a moving line graph of usage. Figure 1: Old Task Manager showing 160 logical processors

As you can see, it is really hard to compare the cells in the CPU Usage History table to each other. The graphs are hard to read, and if you want to compare instantaneous CPU utilization, it is nearly impossible because each cell is showing a moving 60-second graph. Moreover, all the graphs in the CPU Usage History table look identical, so you can’t easily find the processor ID for a specific graph. In our previous post on Task Manager, we discussed the benefits of using a heat map as a visualization to convey and compare large amounts of numerical data. When we looked at designing the graphs for the “many-core view” of the new performance dashboard, a heat map was a natural fit.

In the screen shots below, taken from a current build of Windows 8, it is now easy to see all the logical processors at a glance and know which are being utilized to high and low capacity.

(Note: The screen shots below show Task Manager on a system with 160 logical processors with a simulated workload.)

Performance tab has 7 views: CPU, Memory, Disk 0, Disk 4, Disk 8, Ethernet, and Ethernet. In CPU view, table of logical processors is in form of a heat map, with percent usage indicated in each cell with a number and corresponding color. Figure 2: New Task Manager showing 160 logical processors

In the new CPU graph, you can also get the logical processor ID that maps to each entry via a tooltip, by hovering over the entry with the mouse.

Tooltip for an entry at 100% usage reads "CPU 0 (Node 5)" Figure 3: Tooltip showing the logical processor ID

A major benefit of a heat map is that it scales really well to large data sets. The new Task Manager will show as many logical processors as the OS supports (up to 640!). To make sure you always see the information at a meaningful size, when the data set gets too big for the window, the heat map scales to best fit, and a scroll bar appears as needed.

Heat map is still easy to read, as it shows 13 rows and 9 columns of data, with a scrollbar that allows you to see additional cells below the first 13 rows Figure 4: With 160 logical processors, the CPU graph scales using a scrollbar

For those of you who really like to (micro-) manage every last detail of your system, you can even set which logical processor(s) each of your processes can use. To do this, you first find the ID of the logical core by hovering over one of the cells in the heat map, then go to the Details tab, right-click the process you want, and click “Set affinity.”

User has right-clicked "iexplore.exe" on the Details tab of Task Manager, which reveals context menu with commands for: Open file location, End process, End process tree, Debug, UAC virtualization, Create dump file, Set priority, Set affinity (shown selected), Analyze wait chain, Search online, Properties, and Go to service(s). Figure 5: Set process affinity from the Details tab

Dialog reads "Which processors are allowed to run "iexplore.exe"? There is a dropdown list for Processor group, set to "Group 0". Below this is a set of check boxes for CPU 0 (Node 0), CPU 1 (Node 0), CPU 2 (Node 0), etc., and OK/Cancel buttons. Figure 6: Select the logical processors for the process

Using Task Manager with 64+ logical processors - Building Windows 8 - Site Home - MSDN Blogs