> ## Documentation Index
> Fetch the complete documentation index at: https://help.freakhosting.com/llms.txt
> Use this file to discover all available pages before exploring further.

# How to Fix High CPU Usage on Windows Server

> Fix high CPU usage on Windows Server: find the process in Task Manager or PowerShell, then deal with updates, Defender scans, svchost, WMI or your own app.

To fix high CPU usage on Windows Server, first find the process: open **Task Manager > Details** and sort by **CPU**, or run `Get-Counter "\Process(*)\% Processor Time"` in PowerShell. Then act on that process: let Windows Update or a Defender scan finish, split a busy `svchost.exe` to find the service, or fix or limit your own application. Microsoft treats CPU that stays at 80 percent or more for long periods as a problem.

| Difficulty | Time | Works on | Needs |
| - | - | - | - |
| Intermediate | 10 to 30 minutes | Windows Server 2019 / 2022 / 2025 | Administrator access |

## Before you start

* If the server is too slow to use over RDP, sign in through the [VNC console](https://help.freakhosting.com/portals/vps-panel/how-to-enable-and-use-vnc-console-access.md) on a VPS. On a dedicated server, [open a ticket](https://freakhosting.com/clientarea/submitticket.php) if you can't sign in at all.
* On a VPS, compare with the CPU graph in the panel: see [monitor VPS resource usage](https://help.freakhosting.com/portals/vps-panel/how-to-monitor-vps-resource-usage.md).

## How to find what is using the CPU

> [tab] Task Manager
>
> Press **Ctrl+Shift+Esc** (in RDP: right-click the taskbar and choose **Task Manager**). If you only see a short list, click **More details**. Open **Details** and click the **CPU** column header until the arrow points down. The top entries use the most CPU. Add the **PID** column if you need it later.

> [tab] Resource Monitor
>
> Run `resmon`, open the **CPU** tab and sort by **Average CPU**. This shows which processes stay busy over the last minute, not just a short spike.

> [tab] PowerShell
>
> Total CPU, sampled every 2 seconds, 5 times:
>
> ```powershell theme={null}
> Get-Counter -Counter "\Processor(_Total)\% Processor Time" -SampleInterval 2 -MaxSamples 5
> ```
>
> The busiest processes right now:
>
> ```powershell theme={null}
> $Procs = Get-Counter -Counter "\Process(*)\% Processor Time"
> $Procs.CounterSamples | Sort-Object -Property CookedValue -Descending |
>   Select-Object -First 8 -Property InstanceName, CookedValue
> ```
>
> Per-process values add up across cores, so a process can show more than 100. Ignore `_total` and `idle`.

## Cause 1: Windows Update or servicing is running

**Check:** the top processes are `TiWorker.exe` (**Windows Modules Installer Worker**) or `TrustedInstaller.exe`, often right after Patch Tuesday or a restart.

**Fix:** let it finish and restart if asked. If it runs for hours or fails repeatedly, see [Windows Update stuck or failing](https://help.freakhosting.com/portals/other/how-to-fix-windows-update-stuck-or-failing.md).

## Cause 2: a Microsoft Defender scan

**Check:** **Antimalware Service Executable** (`MsMpEng.exe`) is at the top.

**Fix:** let the scan finish. To reduce the impact, limit the average CPU a scan may use (the default is 50 percent) and schedule scans for a quiet time:

```powershell theme={null}
Set-MpPreference -ScanAvgCPULoadFactor 30
```

More options are in [use Microsoft Defender on Windows Server](https://help.freakhosting.com/portals/other/how-to-use-microsoft-defender-on-windows-server.md).

> [!WARNING]
>
> Don't disable real-time protection to save CPU. Exclude only specific trusted folders, such as a game server's data folder, if the vendor recommends it.

## Cause 3: your own application or game server

**Check:** the top process is your software: `sqlservr.exe`, `w3wp.exe` (IIS), `java.exe` or a game server executable.

**Fix:** check its own logs and settings first (player count, plugins, queries, worker processes). If the load is normal for what it does, the server needs more CPU. On IIS, several `w3wp.exe` processes are one per application pool.

## Cause 4: a busy svchost.exe

`svchost.exe` hosts several Windows services in one process, so Task Manager doesn't show which service is busy.

**Check:** note the PID of the busy `svchost.exe`, then list its services:

```powershell theme={null}
tasklist /svc /fi "PID eq 1234"
```

**Fix:** if one service is suspected, Microsoft's method is to move it into its own process, restart it and watch again:

```bat theme={null}
sc config wuauserv type= own
```

Restart the service (or the server), check `tasklist /svc` again, and undo the change afterwards with `sc config wuauserv type= share`. Replace `wuauserv` with the service you are testing.

## Cause 5: WMI Provider Host

**Check:** `WmiPrvSE.exe` is at the top. It runs queries for other programs, usually monitoring agents or scripts.

**Fix:** stop or uninstall recently added monitoring tools or scheduled scripts one at a time and watch the CPU. Microsoft's [WMI high CPU guide](https://learn.microsoft.com/en-us/troubleshoot/windows-server/system-management-components/troubleshoot-wmi-high-cpu-issues) shows how to trace the calling process.

## Cause 6: something you didn't install

**Check:** an unknown process with a random name, or one running from `C:\Users\...\AppData` or `C:\Windows\Temp`. Right-click it in Task Manager and choose **Open file location**.

**Fix:** treat it as a possible compromise. Run a full scan with Microsoft Defender, check [failed login attempts](https://help.freakhosting.com/portals/other/how-to-see-failed-login-attempts-on-windows-server.md), change the Administrator password and work through the [Windows Server security checklist](https://help.freakhosting.com/portals/other/windows-server-security-checklist.md).

## How to check it worked

Run the `Get-Counter` command again. Microsoft's Performance Monitor guidance treats 0 to 50 percent as healthy, 50 to 80 percent as worth watching and 80 to 100 percent as critical.

## Frequently asked questions

### Is short 100% CPU a problem?

No. Short spikes are normal. Investigate when CPU stays above 80 percent for minutes at a time.

### Why is "System" or "System interrupts" high?

High interrupt time usually points to a driver or hardware problem. Install the latest Windows updates and drivers. On a dedicated server, [open a ticket](https://freakhosting.com/clientarea/submitticket.php) if it continues.

### Can I keep a record of CPU usage?

Yes. See [monitor Windows Server performance](https://help.freakhosting.com/portals/other/how-to-monitor-windows-server-performance.md) for Performance Monitor logs.

## Related guides

> [card] [VPS and dedicated server guides](https://help.freakhosting.com/portals/other/vps-and-dedicated-server-guides.md)
>
> Every guide in this section.

> [card] [Windows Server running slow](https://help.freakhosting.com/portals/other/how-to-fix-windows-server-running-slow.md)
>
> Check memory and disk too.

> [card] [Monitor performance](https://help.freakhosting.com/portals/other/how-to-monitor-windows-server-performance.md)
>
> Task Manager and Performance Monitor.

> [card] [Microsoft Defender](https://help.freakhosting.com/portals/other/how-to-use-microsoft-defender-on-windows-server.md)
>
> Scans, schedules and exclusions.

> [card] [Event Viewer](https://help.freakhosting.com/portals/other/how-to-use-event-viewer-to-find-errors.md)
>
> Find errors behind the load.

***

> [!NOTE]
>
> **Checked against [Microsoft Learn: Troubleshooting high CPU usage](https://learn.microsoft.com/en-us/troubleshoot/windows-server/performance/troubleshoot-high-cpu-usage-guidance), [Troubleshoot issues using Performance Monitor](https://learn.microsoft.com/en-us/troubleshoot/windows-server/support-tools/troubleshoot-issues-performance-monitor), [Get-Counter](https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.diagnostics/get-counter) and [Set-MpPreference](https://learn.microsoft.com/en-us/powershell/module/defender/set-mppreference)** on 4 November 2026. Commands were not tested on a live Windows server for this page.

> [!NOTE]
>
> ### Need Extra Help?
>
> If you encounter any issues, our support team is ready to assist:
>
> * **Live Chat:** Quick assistance via our website.
> * **Support Ticket:** [Open a Ticket](https://freakhosting.com/clientarea/submitticket.php)
> * **Discord:** [Join our Community](https://discord.gg/freakhosting)
> * **Email:** [support@freakhosting.com](mailto:support@freakhosting.com)

> [!TIP]
>
> ### Save on Your Hosting
>
> Ready to upgrade your hosting? Use code **KB20** at checkout for **20% off** your first order!

***

**Last Updated:** November 2026


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.