If your Surface is acting slow or getting hot when you’re not doing anything intensive, it could be due to a runaway process.
A runaway process is a process that is consuming increasing amounts of CPU, which in turn, causes your Surface to have fewer resources available for other (critical) processes. Worse yet, the runaway process can also cause your battery life to be impacted, see post Why My Surface Does Not Sleep.
Runaway processes usually happen because of poor programming and/or code bugs. On the plus side, they can usually be fixed simply by restarting your Surface (which is partly why we usually start out with a restart when we troubleshoot anything).
However, what if you can’t (or don’t want to) restart your Surface? What if the problem keeps coming back? and, because you’re solving it with a restart, you never figure out which process is causing the problem?
High CPU Usage Could be a Runaway Process: You are Terminated Runner
Extra geek points if you get the reference. Anyway the easiest way to identify and kill the runaway process without a restart is to send a Sandma… err….open Task Manager.
I mentioned you could kill processes in a 2-part article on using the Task Manager last year (Part 1, Part 2) but, I didn’t really directly cover finding and killing a runaway process (or processes).
Here’s how I like to find and kill a runaway process:
Be aware that you can crash your Surface if you kill the wrong process, so make sure you’ve saved your data before hunting for and killing any suspected runaway processes.
- Use the Search Charm (swipe in from the right of the screen) to look for Task Manager
- Open Task Manager from the search results and a window like the one below should appear
- If you get a window like the one below, tap or click on More Details to get the full Task Manager window
- Go to the Details tab which should look like the example below
- Click on the CPU header to sort by what’s using the most CPU
- From here, look for a process that you think shouldn’t be there or, at least, shouldn’t be using as much CPU as it is. If you’re not sure, you can tap and hold (or right-click) on the process name and select Search Online to get more information about that process
- Once you’ve identified the process (or processes) hammering your CPU, the processes may “jump around a bit” so you might need to watch the window for a bit to home in on which process might be the runaway
- Select the runaway process and tap and hold (right-click) then select End Process Tree
I like to use End Process Tree instead of End Process because it not only gets the process you selected but, also any child process it may have spawned (i.e. processes it opened). It tends to be much more effective than just killing the original (or parent) process.
If you are really tech-savvy, you could try analyzing the wait chain or even analyzing a dump to see if it tells you anything useful but I haven’t had much luck with it in the past.
High CPU Usage Could be a Runaway Process: Now what?
Now that you identified the runaway process, you can either uninstall, update, or otherwise troubleshoot the application that was causing the problem. This is especially handy if you keep having the problem no matter how many times you restart your Surface.
High CPU Usage Could be a Runaway Process: Warnings
There is a risk in using this method to identify and kill runaway process. Basically, it’s possible to crash your Surface if you kill a process that Windows needs.
The procedure above mitigates that risk by having you do the search online step but something could go wrong resulting in instability or a crash of your Surface.
The good news is that any problems caused by killing the wrong process won’t permanently damage your Surface and a restart will get everything working again. However, you could lose unsaved data, so try these steps with caution.
High CPU Usage Could be a Runaway Process: Memory Leaks
If you’re a bit more tech-savvy, you may have heard the term “memory leak” somewhere and are wondering what the difference is between that and a runaway process.
Basically, a runaway process “eats” CPU cycles (usually by spawning child processes or going into a loop) and a memory leak “eats” RAM (usually by not releasing it when it’s no longer needed).
It turns out the above technique will work for finding and killing leaking processes as well, just look at RAM instead of CPU.
High CPU Usage Could be a Runaway Process: Process Explorer
If you’re having problems finding runaway processes with the Built-in Windows Task Manager, you can try using the Sysinternals Process Explorer app instead.
It is a free utility that doesn’t even require installation to run (though, you might need admin rights). It does a really good job of displaying processes, their child or related processes, and the amount of resources they are consuming.
You can run it on your Surface from live.sysinternals.com by clicking HERE
I hope you found this article helpful and informative. As usual, if you have questions, please let me know.
Tim