A few days ago one of the svchost.exe processes on my machine (Win7 64) started exhibiting this annoying behavior: it will start with about 30 to 40 megabytes of memory, which stays roughly constant for a while, but then later it begins bloating, slowly but surely, possibly at a slightly exponential rate, until a few hours later it is taking up so many gigabytes that I cannot work on my computer anymore. So, I have to stop what I am doing, save everything, and restart the computer, only to have to go through the same ordeal a few hours later.
On at least two occasions I have witnessed this happening along with unreasonably high CPU utilization, up to a full CPU core.
Obviously, this started happening after I installed or tweaked something, but I did not notice the precise point in time that it started happening, and my machine is a busy machine, so I had no suspects to name.
I looked around the interwebz for a solution, but to no avail. People give some good troubleshooting hints, but nobody seems to have an actual solution.
The svchost.exe process which causes the problem contains the following services:
Application Information (AppInfo) Background Intelligent Transfer Service (BITS) Certificate Propagation (CertPropSvc) Computer Browser (Browser) Multimedia Class Scheduler (MMCSS) Remote Desktop Configuration (SessionEnv) Shell Hardware Detection (ShellHWDetection) System Event Notification Service (SENS) Server (LanmanServer) Task Scheduler (Schedule) Themes (Themes) User Profile Service (ProfSvc) Windows Update (wuauserv) Windows Management Instrumentation (Winmgmt)
I decided to give the process of elimination a try. I was able to terminate most of those services without seeing any difference in behavior. The one service which absolutely refuses to terminate is the Task Scheduler: Apparently someone at Microsoft has decided that scheduled tasks are such an awesome thing to have, that nobody in their right minds should ever want to try running Windows without them.
So, the culprit appears to be the Task Scheduler, but what can be done about it? How can we make it stop hoarding our precious RAM?
I think I have found a solution.
Now, this is a complex problem which could have different causes on different systems out there, so this may or may not solve your particular problem; however, it has solved my problem, and that's why I am saying I have found a solution, not the solution. You can read on for the possibility that your problem is the same as mine, or just for the possibility that my troubleshooting approach helps you find a solution to your particular problem.
Open up the Control Panel, open up Administrative Tools, and launch the Task Scheduler console. There are many, I mean many tasks in there, but luckily the one we are interested in is easy to find: From the tree on the left side, select Task Scheduler Library, and in the middle pane you will see a bunch of tasks scheduled for execution. Keep hitting F5 to refresh, and in the Last Run Time column you will see which one of those tasks keeps repeatedly firing: it is the one whose last run time keeps changing with every refresh. In my case the offending task was the Adobe Flash Player Updater. So, right click on that task, and select Disable. Voilà, CPU consumption goes to zero, and memory consumption goes down to the normal 40 megabytes or so. More importantly, they both stay there.
So, after all, in my case the culprit was not really the Task Scheduler, it was the Adobe Flash Player Updater. Thank you, Adobe! You rock!