How To Resolve Windows Update Causing High CPU, Disk, and Memory Usage on Windows 11/10

Clearing Windows Update Cache Folders — The Real Deal

So, here’s where I got stuck for a while—dealing with Windows updates that just refused to install or kept looping forever. Turns out, the culprit is often the cache folders, especially the SoftwareDistribution folder at C:\Windows\SoftwareDistribution and the Catroot2 folder in C:\Windows\System32\catroot2. Windows uses these to temporarily hold update files. Over time, they sit there, get corrupted or bloat up, and cause the CPU and disk to run way hotter than they should when it’s trying to patch itself. That sluggish, sluggish feeling? Yeah, usually these folders are involved.

What I finally learned is, you can’t just start deleting stuff outright. You need to stop the WU (Windows Update) service first because these files get locked down pretty tight. Run PowerShell or Command Prompt as admin, and type Stop-Service wuauserv -Force. Also, better to stop bits and cryptsvc, because they’re connected: so, Stop-Service bits -Force and Stop-Service cryptsvc -Force. This prevents conflicts when trashing the cache.

Now, here’s the tricky part—don’t delete the Catroot2 folder itself, only its contents. It’s essential for cryptographic operations that Windows does during updates—if you delete or rename it, that could cause even bigger problems, like corrupting the update process rather than fixing it. Instead, just clear out the files inside. Same for the SoftwareDistribution folder—delete everything inside that you can. If it’s not there or seems grayed out, double-check you’ve stopped all related services first.

Once it’s clean, bring back the services with Start-Service wuauserv, and do the same with bits and cryptsvc. Then, check if your update process runs smoother. I also ran the built-in Windows Troubleshooter—under Settings > Update & Security > Troubleshoot > Additional troubleshooters > Windows Update. Not perfect, but it sometimes helps automate some cleanup.

Running SFC (System File Checker) – Worth a Shot

Another thing that helped me was running sfc /scannow. It’s not foolproof, but sometimes corruption in system files causes slowdowns or weird update behaviors. I opened Command Prompt as admin because, honestly, clicking around the Start menu for this took some effort. Then, typed sfc /scannow and waited… and waited. It scans and attempts repairs. Usually, you’ll get a message saying either “no integrity violations” or “repair pending restart.” If it’s the latter, just reboot and rerun. Often, a second pass tightens things up.

Sometimes I ran it in Safe Mode if my Windows was too unstable, which helped with stubborn issues. Patience is key here—some attempts require a few restarts or running the command twice.

DISM – When SFC Isn’t Enough

If SFC doesn’t fix the problem, DISM is your friend. It can repair the Windows image itself. The command I used was: DISM /Online /Cleanup-Image /RestoreHealth. This fetches files from Windows Update by default, but if you’re dealing with a corrupted source or no internet, mounting an ISO works better.

To do that, I mounted a Windows ISO (right-click > Mount), then pointed DISM to the install.wim or install.esd file inside. For example, if mounted at G:\ and using install.wim, I ran:

DISM /Online /Cleanup-Image /RestoreHealth /Source:G:\sources\install.wim:1 /LimitAccess

Remember, the number after the colon is the index—check with DISM /Get-WimInfo /WimFile:G:\sources\install.wim to get the right one for your edition. Also, if you’re using an install.esd file, the syntax might change a bit—don’t forget to verify your source. This whole process can take a while and sometimes feels like a gamble, especially if your ISO isn’t matching your Windows version exactly.

Resetting Update Components Manually

If cache clearing and DISM/SFC still leave you stuck, try resetting components manually. It’s more brutal, but it’s often the last resort. Open admin Command Prompt or PowerShell and run these commands one after the other:

net stop wuauserv
net stop bits
net stop cryptsvc
net stop msiserver

ren C:\Windows\SoftwareDistribution SoftwareDistribution.old
ren C:\Windows\System32\catroot2 catroot2.old

net start wuauserv
net start bits
net start cryptsvc
net start msiserver

This essentially resets the update client, forcing Windows to rebuild its update database from scratch. I’ve had to do this a few times, and usually, it kicks start the update process again. Sometimes, you need a reboot in between, and it’s worth re-trying if the first run doesn’t fully clear the problem.

Dealing with Delivery Optimization

One thing I overlooked at first was Delivery Optimization—basically, Windows sharing updates peer-to-peer with other PCs on your network and even the internet. Sounds smart, but sometimes it just eats bandwidth and CPU, especially if your network is flaky or limited. You can disable it by going into Settings > Windows Update > Advanced Options > Delivery Optimization and turning off “Allow downloads from other PCs”.

It also lets you control how much bandwidth it uses—limit uploads and downloads if needed. For me, disabling it reduced the CPU spikes during update times, so definitely consider this as part of your troubleshooting arsenal. It took some trial and error, honestly.

Final Thoughts—Patience and Double-Checking

Honestly, dealing with Windows update madness is a bit of a puzzle, and I’ve spent way too many late nights trying to get it stable again. The key is to stop, take a deep breath, and follow these steps methodically. Double-check services you stop or rename, make sure you run commands as admin, and keep backups or restore points ready. Windows isn’t perfect, and sometimes it just wants to make your life difficult.

Hope this helped — it took me way too long to figure it out. Anyway, hopefully this saves someone else a weekend or two. Good luck out there!