This topic describes how to troubleshoot and resolve high CPU utilization on a Windows instance.
Problem description
The CPU utilization of a Windows instance is considered high when it is 80% or higher.
Possible causes
High CPU utilization may be caused by the following:
The instance is infected by a virus or a trojan.
Third-party antivirus software is running on the instance.
An application or driver on the instance is abnormal, or an application has high I/O usage or a high interrupt rate.
Solutions
Step 1: Locate the problem
On a Windows instance, you can use tools such as Task Manager and Resource Monitor to locate the cause of high CPU utilization. This topic uses Resource Monitor on a Windows Server 2022 operating system as an example.
This topic explains how to use Resource Monitor on a Windows Server 2022 system to identify the cause of high CPU utilization.
Use a VNC connection to connect to the Simple Application Server. For more information, see Connect to a server for rescue (console).
At the bottom of the desktop, click the Search button, enter
Resource Monitor, and then click OK.In the Resource Monitor window, check for processes that cause high CPU utilization.

Record the process IDs (PIDs) and names of the processes.
Open the Task Manager window, click the Details tab, and then find the processes based on the recorded names and PIDs. Right-click each process name, select Open file location, and then check whether the process is a malicious program.
Step 2: Analyze and resolve the issue
Determine whether the process that causes high CPU utilization is a normal process or an abnormal process, and then follow the corresponding steps to resolve the issue.
Possible cause | Operation |
Normal process | In general, frequent business access or Windows services such as the update service may consume high network traffic and CPU resources. Note
|
Abnormal process | Abnormally high CPU utilization may be caused by malicious viruses or trojans. Sometimes, third-party malicious programs may disguise themselves as svchost.exe or Tcpsvcs.exe, which are operating system processes, and cause high CPU usage. You must manually find and kill the abnormal processes. Note If you cannot determine whether a process is a virus or a trojan, search for the process name on the internet to confirm. Before you delete the process, create a snapshot to back up your data. For more information, see Create a snapshot.
|
Common tools
The following section describes the tools used to locate the cause of high CPU utilization in Windows.
Task Manager
Task Manager displays a list of running applications, which helps you identify applications with high CPU usage. The following figure shows the Task Manager page.

When you check the CPU utilization on the Performance tab, right-click the CPU utilization graph and select .
The following figure shows the utilization of two logical CPUs.

If the CPU utilization of a single process spikes to nearly 100% while the CPU utilization of other processes does not change much, the cause may be network I/O processing.
Resource Monitor
Resource Monitor provides a graphical view of CPU utilization. You can also search for corresponding processes by handle and module.

Process Explorer
Process Explorer is a Microsoft Sysinternals tool. By configuring the correct symbols, you can check the call stacks of an application's threads to locate potentially problematic drivers. To download the Process Explorer tool, see Process Explorer.
The following figure shows the Process Explorer tool page.

Performance Monitor
Performance Monitor is a Microsoft tool for collecting performance counters from various components. To analyze system CPU resource consumption, you can check several counters.
The following three core parameters are related to performance:
\Processor(_Total)\% Processor Time: The percentage of time that the processor executes a non-idle thread.\Processor(_Total)\% Processor Time=\Processor(*)\% User Time+\Processor(*)\% Privileged Time.\Processor(*)\% User Time: Indicates the time consumed by the processor to execute program code. This counter helps you determine which application or function call consumes more time.\Processor(*)\% Privileged Time: The time that an application spends executing system calls in the kernel, such as calls for drivers, I/O request packets (IRPs), and context switches. If the operating system spends more than 30% of its time inPrivileged Time, the instance is performing operations related to high I/O throughput.When
% Privileged Timeis high, you need to further check% DPC Time,% Interrupt Time, andContext Switches/sec.High
% DPC Timeand% Interrupt Timevalues indicate that an unknown device is performing many operations or has poor performance.A high
Context Switchvalue indicates that the kernel is frequently switching between processes or threads. For more information, see The Case of the 2 Million Context Switches and Mark Russinovich's The Case of the System Process CPU Spikes.A high
Context Switches/secvalue indicates that many threads are in the Ready state. You need to reduce the number of threads to resolve the issue.