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
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

  • 3
    ...and what do you perceive is the problem with RAM being used? RAM is factors faster than HD or SSD, so why empty it just so it can sit idle? – Tetsujin Jul 11 at 19:41
  • Since this question is about Memory, it would help if you sort your Task Manager display by "Memory" instead of "CPU" so we can see what uses the most memory on your PC. For starters though, that Cortana is using more than 100MB of memory is a huge red flag. – InterLinked Jul 11 at 20:14
  • 2
    Can you grab screenshots of the Details tab (sort memory descending) and @Martin Performance tab (select Memory) from Task Manager, and also take a look with RAMMap (at least a screenshot of the first tab, but if you can File => Save a .RMP file and provide that, even better). – Bob Jul 12 at 7:08
  • 1
    I agree with Bob, a screenshot of the Memory view on the Performance tab is required to even begin assessing the situation. Memory leaks are often not (directly) associated with processes. – Daniel B Jul 12 at 10:58
  • 1
    As above, add a screenshot of the "Perofmance" tab of Task Manager... select the "Memory" item from the list on the left. How much is "in use" / "cache". Cache is always a good idea, and using RAM is always beneficial. – Attie Jul 12 at 11:33

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.

  • You'd be correct if they were asking about actually free RAM, but AFAIK the "memory usage" as displayed in Task Manager and shown in the screenshots does not include the disk cache. Disk cache is counted as available and therefore not "used" -- you can see how they are separate on the Performance tab. Common reasons I've seen for strangely high "used" memory include handle leaks and driver locked memory. – Bob Jul 12 at 16:44
  • I'm not talking about the disk cache. I'm talking about all caching including things like filesystem metadata caching and so on. Even application-level caches. What I am saying is true about memory usage in general and is no way specific to the disk cache, though that's the most notable example of this reasoning which pervades the entire system and application architecture. – David Schwartz Jul 13 at 0:31
  • 1
    Application-level caches would appear in the process' private working set, so it wouldn't be a case of this "missing" RAM. Also, I believe filesystem metadata, etc., would appear in the "Cached" counter which would still be classified as "Available". In any case, based off the RAMMap report, I'm confident that this particular case is due to leaking process handles leading to a (large) number of zombie processes. I just prefer to identify the actual cause before claiming everything is working as intended - sometimes, it's not. – Bob Jul 13 at 0:45

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.

...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.

  • 1
    Yeah, but he has 24 GB of RAM, and that list shouldn't eat anywhere near 62% of 24 GB. – Aganju Jul 12 at 3:23
  • Completely agree with you @Aganju – Jerry Jul 12 at 10:38

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.