How to Fix High CPU Usage in Windows 10 and 11

6 min read

CPU running at 100% for no reason? Find what's causing high CPU usage in Windows and fix common culprits: Windows Update, antivirus scans, WMI, and background services.

Share:TelegramX

High CPU usage slows everything down — apps lag, the fan spins up, battery drains fast. Here's how to find the cause and fix it.


Identify the Culprit

Ctrl + Shift + EscProcesses tab → click CPU column to sort by usage

Find the process at the top. The fix depends on which process it is.

# Top CPU consumers via PowerShell
Get-Process | Sort-Object CPU -Descending |
  Select-Object -First 10 Name, CPU, Id,
    @{n='RAM(MB)';e={[math]::Round($_.WorkingSet/1MB,0)}}

Common Causes and Fixes

Windows Update (TiWorker.exe, WUDFHost.exe, svchost.exe)

Windows Update downloads and installs updates in the background — CPU usage is normal during this, but should stop within an hour.

If it runs for hours:

# Restart Update service
Restart-Service wuauserv
Restart-Service UsoSvc

Or wait — let the update complete, then restart.


Antivirus Scan (MsMpEng.exe — Windows Defender)

Defender runs scheduled scans in the background.

Check when it runs and reschedule:

Get-ScheduledTask -TaskPath "\Microsoft\Windows\Windows Defender\" |
  Select-Object TaskName, State

Reschedule to off-hours:

Set-MpPreference -ScanScheduleDay Saturday
Set-MpPreference -ScanScheduleTime 03:00:00

Add exclusions for development folders or large file directories:

Add-MpPreference -ExclusionPath "C:\Dev"

WMI Provider Host (WmiPrvSE.exe)

WMI is used by many system tools. When it spikes, another process is querying it constantly.

Find which process is using WMI:

Get-WinEvent -FilterHashtable @{LogName='Microsoft-Windows-WMI-Activity/Operational'; Id=5858} -MaxEvents 5 |
  Select-Object TimeCreated, Message

Usually caused by monitoring software, third-party antivirus, or a misconfigured scheduled task.


System Interrupts

If System Interrupts shows high CPU, it's a hardware or driver issue.

# Check for driver issues
Get-WinEvent -LogName System -EntryType Error -Newest 10 |
  Where-Object {$_.Source -like "*driver*"} |
  Select-Object TimeCreated, Source, Message

Common causes: outdated network or audio driver, failing hardware. Update drivers and check Event Viewer.


Runtime Broker (RuntimeBroker.exe)

Handles permissions for Windows Store apps. Normally uses minimal CPU — spikes indicate a misbehaving app.

# Restart Runtime Broker
Stop-Process -Name RuntimeBroker -Force

If it keeps spiking: check Settings → Apps → check which apps have permission to run in background.


SearchIndexer.exe (Windows Search)

Search indexing runs in background after updates or when many files change.

Pause indexing temporarily:

Stop-Service WSearch

Rebuild index if it's stuck: Win + IPrivacy & SecuritySearching WindowsAdvanced indexing optionsAdvancedRebuild


svchost.exe (Service Host)

svchost.exe is a container for Windows services — multiple instances are normal. To see which service is inside a specific svchost:

Right-click high-CPU svchost in Task Manager → Go to details → right-click → Analyze wait chain or Services tab to see which services are inside.

# List services in a specific svchost PID
$pid = 1234  # replace with actual PID
Get-Process -Id $pid | Select-Object -ExpandProperty Modules |
  Where-Object {$_.ModuleName -like "*.exe"}

Malware

Cryptomining malware causes constant high CPU.

Signs: CPU high even when PC is idle, unknown process name, high CPU when browser is closed.

# Quick malware scan
Start-MpScan -ScanType QuickScan

Run Defender Offline Scan if quick scan finds nothing.


General Fixes

Reduce startup programs: Ctrl + Shift + Esc → Startup apps → disable high-impact items

Set power plan to Balanced (not High Performance): High Performance keeps CPU at maximum clock speed even at idle.

powercfg /setactive SCHEME_BALANCED

Update Windows and drivers: Outdated drivers cause inefficient CPU usage.


If Nothing Helps

# Generate detailed performance report
perfmon /report

Wait 60 seconds — Windows generates a full system health report. Open it and check the Software Configuration and CPU sections for anomalies.

Repair system files (corruption can cause high CPU):

DISM /Online /Cleanup-Image /RestoreHealth
sfc /scannow

Check disk health (a failing disk causes CPU spikes too):

Get-PhysicalDisk | Select-Object FriendlyName, HealthStatus

Check for a driver-related problem:

Get-WmiObject Win32_PnPEntity |
  Where-Object {$_.ConfigManagerErrorCode -ne 0} |
  Select-Object Name, ConfigManagerErrorCode

Check CPU temperature (thermal throttling keeps usage pinned):

winget install REALiX.HWiNFO

Normal temps: under 80°C at load. Above 90°C — check cooling or replace thermal paste.

Disable a batch of background services at once:

$services = @("DiagTrack", "SysMain", "MapsBroker", "lfsvc", "WSearch")
foreach ($s in $services) {
  Stop-Service $s -Force -EA 0
  Set-Service $s -StartupType Manual -EA 0
}


🔍 Not sure what a Windows error code means?

If Windows shows a code like 0x80070005, 0x80070002 or 0xC000021A — use this free tool:

→ Windows Error Decoder — enter the code and instantly find out what it means and how to fix it.

Summary

Check Task Manager first — identify the exact process. For Windows Update: wait or restart the service. For Defender: reschedule scans. For System Interrupts: update drivers. For unknown processes: run a malware scan. For persistent high CPU with no obvious cause: run perfmon /report.

Frequently Asked Questions

Is 100% CPU usage always a problem?

No — during updates, virus scans or large file operations, 100% CPU is normal and temporary. It becomes a problem when it's persistent for hours without an obvious cause.

System Interrupts at high CPU — what does that mean?

System Interrupts represent hardware IRQ processing. High System Interrupts CPU usually means a driver or hardware issue — outdated drivers, failing hardware, or USB device conflicts.

Will disabling Windows Update fix high CPU permanently?

Only temporarily. Windows Update runs in the background to patch security vulnerabilities. Better to schedule it for off-hours instead of disabling it.

Related articles

💬 Leave a comment

Comments are moderated before publishing.

← All articles