Why is my memory at 65% usage when I'm not running any programs?

I don't know why my memory is showing 65% usage even though I'm not running any programs.

And sometimes it's stuck.

My laptop specifications:

Acer Aspire VX 15
OS : Windows 10 x64 lastest update
RAM : 24GB DDR4 2400
SSD : 512GB
HDD : 1TB
CPU : corei7 7th gen 7700HQ 2.8
Graphics : GeForce GTX 1050Ti GDDR5

Screenshot of Processes

Screenshot of Processes

Screenshot of Performance

Screenshot of RAMMap

Screenshot of RAMMap

11

4 Answers

tl;dr: Download all 5 files from FindZombieHandles, run it, and see which process is creating all those zombies.


You were correct to notice this issue.1

There's a few common causes:

  • A handle leak, especially of GDI objects
  • A handle leak, resulting in zombie processes
  • Driver locked memory, which can be due to a buggy driver or even normal operation (e.g. VMware ballooning will intentionally "eat" your RAM to try to balance it among VMs)

Getting more info

Now the first thing we can do is use the excellent RAMMap tool, which will identify the broad categories that the memory usage falls under. These do not necessarily tell you what it was, but do give you a suggestion of where to look next.

In your particular case, I refer back to the screenshot you provided. You want to look at the Active column — the Standby column includes caches that fall under "available" memory. Notice Page Table is very high — I would expect it to be in the ballpark of under 512 MB, not well over 2 GB!

Narrowing it down

From here we can guess: it is probably due to zombie processes. A zombie process can occur in Windows when one process launches another, which holds a handle to the launched process. When the launched process exits, the launching process is expected to release those handles. When that fails to happen, they stay around as long as the launching process exists.

We can actually get further confirmation on the Processes tab of RAMMap. Notice in your case, sorting by process name, the thousands of tasklist.exe and hundreds of powershell.exe instances hanging around. In fact, anything there with Private memory usage of 0 K is a red flag of a process that has ended but is still zombieing around.

Now, you need to figure out which process is creating all these zombies. There's a few ways you can do this. You can use Task manager on the Details tab and add the Handles column. Any process holding a large number of zombies will also have an excessive number of handles open. You can also use Process Explorer to look at what handles a specific process has open.

However, by far the easiest way is to use FindZombieHandles2 (you need to download all 5 files into the same directory). If you run this tool (as admin) it should tell you which process is creating and holding all these zombies. From there, you can kill the process, uninstall the application or report it to the developer.


1 As I have explained elsewhere, the Task Manager's Processes tab displays memory usage excluding disk caches so the common (Linux) explanation of "free RAM is wasteful" usually does not apply. As far as the Task Manager is concerned, the disk cache is part of available memory. No mention is made of "free" memory.

2 A huge thanks to Bruce Dawson for this tool.

Free RAM is capability that is forever wasted. A system with 16GB of RAM that uses only 8GB today can't use 24GB tomorrow. You can't save RAM for later. Because of this, modern operating systems make every effort to keep RAM in use whenever they possibly can to waste as little RAM as possible.

Suppose your system were to make more RAM free, that would mean some effort is needed now to make that RAM free. Since your system has plenty of free RAM already, there is likely no payoff to this effort. If the system wants to use the RAM that it made free, it has to make it used again, taking more effort just to undo the work it did to make it free.

So, for example, when some program on your system reads or writes a file, if the system has plenty of RAM free, it will keep that data in memory. If some other program reads that file, disk I/O will be saved. If that memory is later needed for some other purpose, it can simply be transitioned from one use to another without wasting the effort of having to make it free just to make it used again.

In other words, your operating system is being efficient. Almost all modern operating systems work this way.

3

...According to this screenshot you are running at least 11 programs, and you also have not disabled "search indexing or "Desktop Window Manager". Or presumably any other services etc. and msconfig entries and animations, etc.

Your computer is using RAM because it is turned on.

To expand on that further, the operating system is a program.

  • Explorer
  • Task Manager
  • Cortana
  • Snipping Tool
  • CTF Loader
  • VyprVPNService

Everything listed above and everything in your screenshot is a program running on top of the OS, they are all programs.

2

You Might Also Like