How To Fix Service Host Local System Causing High CPU or Memory Usage
Back when Windows 10 Creators Update was released there was a spate of issues where the Windows Service Host would utilize a lot of CPU and/or RAM. This was a temporary issue as Microsoft then released a hotfix to fix the problem. With the Windows 10 Fall Creators Update now arriving, it seemed a good time to cover this just in case it happens again.
What is Windows Service Host?
Windows Service Host is an umbrella service that Windows uses to cover any core service that accesses Dynamic Link Libraries (DLLs). When you see Service Host in Task Manager, you also see a down arrow to the left. If you select that, you will see what services are included under that umbrella.
The idea was to create these umbrella services to organize resources into logical groups. For example, a single Service Host would include all Windows Update and background file transfers. Another could host Windows Firewall, Defender and so on. The theory was to allow Windows to group these resources so any program could use them in such a way that if one failed or was stopped, the rest of the system would remain stable.
If you check your own computer, you will likely see multiple Windows Service Host instances. Select the arrow next to it and see what each is hosting.
In pre Creators Update Windows systems, you will see a few Service Host services with multiple processes within them. After the Creators Update, you now see many more Service Hosts with individual services within them. The idea was to make the troubleshooting process easier by ungrouping them.
Windows Service Host uses high CPU or RAM
So now you know that the Windows Service Host is exactly that, a host service that looks after other services. When you see a Windows Service Host using up a lot of CPU or RAM, you now also know that it isn’t the Host itself but one of its sub-services.
This is usually caused by a stuck process or some kind of configuration error or file corruption. The good news is that there are several ways to address this. The bad news is that Task Manager doesn’t always report exactly what sub-service is causing trouble.
Whenever you come across any Windows error, the first order of business is a full reboot. Save any work you don’t want to lose and reboot your computer. If the problem goes away, great. If it doesn’t, work your way through these steps until the issue is resolved.
One common cause of high CPU or RAM utilization is Windows Update. Your first check should be to see if there is an update running.
- Right click the Windows Start button and select Settings.
- Select Update & Security and check to see if Windows is currently running an update.
If Windows update is running, you should see a progress bar. If it isn’t, you should see a message telling you your device is up to date.
The second check is to right any Windows wrongs with the System File Checker.
- Right click the Windows Start button and select Command Prompt (Admin).
- Type or paste ‘sfc /scannow’ and hit Enter.
- Allow the process to complete.
If the System File Checker detects any errors, it will fix them automatically. If you are still seeing high utilization after running this process, there is something else we can try.
- Type ‘powershell’ into the Command Prompt you just used.
- Type or paste ‘Dism /Online /Cleanup-Image /RestoreHealth’ and hit Enter.
- Allow the process to complete.
DISM is a Windows file integrity checker that compares ‘live’ Windows files to Windows cache which has copies of the originals. If it detects anything out of place that hasn’t been modified by a user or authorized program it replaces the file with the original.
Stop the service
If none of those fixes work, let us verify the service causing the issue. We need to identify the service under the Service Host utilizing the CPU or RAM. Then we need to stop that service, monitor and then go from there.
- Open Task Manager and select the Service Host utilizing all your CPU or RAM.
- Check the process underneath. For example, it might be Windows Audio.
- Right click that service and select Open Services.
- Right click the service and select Stop.
- Monitor your computer to see if utilization reduces.
You would obviously switch Windows Audio for whatever service is utilizing your CPU. All will have a corresponding service entry so the process will work regardless of what it actually is.
If the utilization reduces, you know what is causing it. In the example above, Windows Audio, we would uninstall and install a new audio driver. What you do next depends entirely on what you find. Given the sheer number of possibilities, it is impossible for me to tell you exactly what to do from there but typing ‘troubleshooting PROCESSNAME’ into a search engine is a good place to start. Just change PROCESSNAME for the process you found in Step 2 above.
If your Service Host Local System is causing high CPU or memory usage, the above steps should fix it in the majority of cases. If not, you at least now know how to identify the culprit.