How to Fix High CPU Usage in Windows 10 and 11
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.
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 + Esc → Processes 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 + I → Privacy & Security → Searching Windows → Advanced indexing options → Advanced → Rebuild
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.
🔍 Не знаєш що означає код помилки Windows?
Якщо Windows показує код на кшталт 0x80070005, 0x80070002 або 0xC000021A — скористайся безкоштовним інструментом:
→ Декодер помилок Windows — введи код і одразу дізнайся що він означає та як виправити.
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.