How do you see what uses the most CPU?

Skip to main content

This browser is no longer supported.

Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.

High CPU usage troubleshooting guidance

  • Article
  • 04/15/2022
  • 5 minutes to read

In this article

This article helps you identify the cause of sustained high CPU usage. Keep in mind that you can expect CPU usage to increase as a process or an application serves requests. However, if you consistently see CPU usage remain at a high level (80 percent or greater) for prolonged periods, the performance of your system or application will suffer. For that reason, it's important to understand the cause of sustained high CPU usage to be able to correct the problem, if possible.

Task Manager

Use Task Manager to view CPU consumption to help identify the process or application that's causing high CPU usage:

  1. Select Start, enter task, and then select Task Manager in the search results.
  2. The Task Manager window defaults to the Processes tab. If you see a single list of process names in the Name column, you can expand any instances of grouped processes.
  3. Select the CPU column header to sort the list by CPU usage. Make sure that the arrow that appears on the header points down to sort the data from highest to lowest CPU consumption.

If the process can be stopped, or a related service can be disabled, stop the process or the service. Then, check whether this mitigates the problem.

Resource Monitor

Use the Resource Monitor to view CPU consumption:

  1. Select Start, enter resmon, and then select Resource Monitor from the search results.

  2. In the Resource Monitor window, select the CPU tab.

    Note

    You might have to maximize the window to see all the data.

  3. Select the Average CPU column header to sort the list by overall CPU usage. Make sure that the arrow that appears on the header points down to sort the data from highest to lowest CPU consumption.

If any of the processes show a higher-than-expected rate of consumption for your environment, consider these top processes first when you try to determine the cause of the problem.

Process Explorer

The Process Explorer tool gives you a complete overview on which processes are currently running on your computer, including details about who invoked the processes, and how much of the total system resources they're consuming.

If you want to verify an operating system-related process (for example, System), follow these steps:

  1. Run Process Explorer as an administrator.
  2. Right-click the process, select Properties, and then select the Threads tab.
  3. Select the thread that consumes high CPU, and then select Stack to view the functions that are being run.

Note

To get a better stack information result, configure symbols in the Process Explorer. To do this, follow these steps:

  1. Install Debugging Tools for Windows.
  2. Run Process Explorer as an administrator.
  3. Select the Options menu, and then select Configure Symbols.
  4. Change the Dbghelp.dll path to C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\dbghelp.dll, and then select OK.

Common troubleshooting scenarios

This section introduces the scenarios of different processes that use high CPU usage.

Uniquely named singular Microsoft process

  1. Collect a performance monitor log. Use a 1-second to 5-second snapshot interval.
  2. Collect a Windows Performance Recorder (WPR) log while high CPU usage is occurring.

    Note

    Don't let this log run for a long time because the file grows very quickly. You should have to run the log only for a few minutes (three to five) to capture the high CPU usage.

  3. Run the ProcDump tool two times during reported high CPU usage. Space apart the runs by several minutes.

Svchost process

If a svchost process consumes high CPU usage, and the svchost process contains more than one service, you need to break each service out to run in its own svchost process to determine which service is causing the high CPU usage. To do so, follow these steps:

  1. Open an elevated Command Prompt window.

  2. Break out each service into its own svchost process if it's a shared svchost process. To do this, run the following command:

    sc config type= ow

    Note

    In this command, replace with the actual service name.

  3. Restart the service

  4. At the command prompt, run tasklist /svc to verify that the service is running in its own svchost process.

    Important

    After the problem is resolved, you must return to step 2 and revert what you did.

    To do this, replace sc config type= own with sc config type= share in the command. Then, restart the service.

  5. After you break each service out into its own svchost process, you now have to identify which service was driving up CPU usage or consuming high CPU usage.

  6. Collect a performance monitor log. Use a 1-second to 5-second snapshot interval.

  7. Record the PID of the offending Svchost process.

  8. Collect a WPR log while the problem is occurring.

  9. Run ProcDump two times during reported high CPU usage. Space apart the runs by several minutes.

Multiple process instances that have the same name

Several instances of a process could share the same name. For example, this problem could occur with the explorer.exe processes on a Remote Desktop Protocol (RDP) server.

To troubleshoot this problem, follow these steps:

  1. Collect a performance monitor log. Use a 1-second to 5-second snapshot interval.

  2. Collect a WPR log while the problem is occurring.

  3. Run ProcDump two times during reported high CPU usage. Space apart the runs by several minutes.

  4. Record the PID of the offending process by running the following command:

    tasklist /v /fo csv >Running_Process.txt

Third-party application process

If a third-process is identified as the cause of the problem, you must contact the application vendor to understand why the respective process is causing high CPU usage on the computer.

Data collection

Before the problem occurs

You can use Debug Diagnostic 2.0 version to further troubleshoot this problem. To use the tool, follow these steps.

  1. Install the Debug Diagnostic Tool v2 Update 2.

    Important

    Uninstall all other versions of Debug Diagnostic tool before you install the 2.0 version.

  2. Select Start, enter performance monitor, and then right-click Performance Monitor to run it as an administrator.

  3. Use Performance Monitor to collect the performance counter log and start the logging.

When the problem occurs

  1. Open the DebugDiag 2 Collection.
  2. Select the Processes tab, right-click the worker process that corresponds to the appropriate application pool, and then select Create Full Userdump.
  3. Repeat step 2 three times while the CPU usage is high.
  4. Stop the Performance Monitor logging.
  5. Compress the data by using DebugDiag. To do this, Select Tools > Create Increment Cabinet File.

We recommend that you keep the information that you've gathered handy in case you have to contact Microsoft Support.

How do you see what is using the most CPU?

In the full Task Manager window, click the “Processes” tab. You will see a readout of all the active processes and the resources they're using. Processes are any applications or programs running on your computer, including vital system functions that run silently in the background.

What is using up all my CPU?

Click on More details near the bottom of the window. Not only will you see many more programs listed, you'll see the system resources each is using. Click on the “CPU” column header. This will sort the list of running software in order of decreasing processor usage.