Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

Task Manager shows my total memory usage at 90% of my 6 GB total, but no single process is using more than 250 MB RAM, and the sum of RAM use of all running processes is less than 2 GB. I've tried:

  • Looking at the numbers in the "Memory" column on the "Processes" tab of Task Manager.
  • Looking at the "Working Set", "Private Working Set", "Shared Working Set", and "Commit Size" columns on the "Details" tab of Task Manager.
  • Looking at similar memory-related columns in Process Explorer.
  • I've tried running Sysinternals RAMMap, but while I'm having the low-memory crisis, it crashes at launch. Once I resolve the problem, RAMMap runs normally, but at that point it's too late.

All show a pretty small amount of memory being used.

There are lots of people asking variants of this question, with various versions of windows, all over the Internet. Some of them manage to solve their low-memory problems, often by re-installing software; sometimes by re-installing windows from scratch. I'm looking for an answer to the general questions that these all share, and that never seem to get answered elsewhere:

  1. Why is total used memory much higher than the memory used by all listed processes, no matter how I try to count them?
  2. How could windows "know" that memory is used without knowing what program is using it?
  3. What processes might possibly use up memory but now show up on the list?
  4. Is there any software out there that can give more information about used memory?

Details specific to my own problem: Since upgrading to Windows 8.1, The problem occurs as soon as I log in. I run out of memory as soon as I ran any program. I noticed in Process Explorer that several instances of iexplore.exe were running, apparently started automatically. One particular instance was only using a few MB of RAM, but showed hundreds of millions of page faults. On a whim, I killed that specific process, and memory usage immediately dropped by 70%.

Leading to one specific question:

  • How could killing one process that supposedly only used a few MB free up several GB?

And a (presumably hard) bonus question:

  • Short of re-installing Windows, how might I avoid having to go through this every time I reboot my computer?
share|improve this question

marked as duplicate by mdpc, ᔕᖺᘎᕊ, Nifle, Kevin Panko, MariusMatutiae May 4 at 12:50

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

2  
also kernel memory counts into usage. Post picture of RAMMAp: blogs.technet.com/b/askperf/archive/2010/08/13/… –  magicandre1981 Mar 11 '14 at 5:24
2  
I think the question should be titled "Why am I running out of memory." –  surfasb Mar 11 '14 at 17:14
    
This question is impossible to answer without specifics. List the programs installed. Or better yet, a dump of the running processes from Performance Monitor. –  surfasb Mar 11 '14 at 17:31
    
magicandre1981, I said in my question that RAMMap won't run while my computer is low on memory. It crashes as soon as I run it. Is there any other tool that can provide that information? –  Josh Mar 13 '14 at 2:35
1  
Are you actually shutting down / restarting your computer completely or do you use hybrid shutdown (default in Windows 8)? After switching to Windows 8 I had a similar problem. I assume one driver took more and more of my physical RAM and didn't give it back, even after turning the computer off and on. In a few weeks it accumulated to several gigabytes. So now every few days I click on "restart" or hold shift while clicking on "shut down" to actually shut down the PC. –  Robert May 24 '14 at 1:43

1 Answer 1

By the way, you should try not to use the term "memory". It creates a lot of confusion. If you mean physical memory, say "physical memory", or "RAM". If you mean virtual memory, say so. If you mean backing store, say so.

Why is total used memory much higher than the memory used by all listed processes, no matter how I try to count them?

Because the operating system doesn't waste physical memory (RAM) unless it has no choice.

How could windows "know" that memory is used without knowing what program is using it?

Because no program is using it. Consider, for example, memory that contains the code for a program that just terminated. No program is using it. But that memory is used, since it is not free and contains data that might be useful (in case the program runs again).

What processes might possibly use up memory but now show up on the list?

It's not used by processes.

Is there any software out there that can give more information about used memory?

RAMMap can do this.

There are only two possibilities, RAM can be used or it can be wasted. Obviously, the first is better. Any free memory is forever wasted -- a 4GB machine can't use 2GB today in order to use 6GB tomorrow. If you're thinking "I want it free now so I can use it later", forget that. You can use it now and use it later.

How could killing one process that supposedly only used a few MB free up several GB?

You are running low on backing store, not physical memory. You have plenty of free physical memory but insufficient backing store for the OS to keep allocating virtual memory that might require backing.

The process was only using a few MB of physical memory, but the OS might have had to reserve several GB of backed virtual memory for it. For example, suppose a process creates a writable, private memory mapping of a 2GB file. The OS must reserve 2GB of backed virtual memory for the process, because it might write to every single byte of that mapping. Also, it might never write to any of them. This is why you need a good sized paging file.

Modern operating systems write lots of checks (promising backing store) that will never be cashed (require RAM). You can't keep writing checks (promising backing store) even if you have plenty of money in the bank (free RAM) if you've already written a bunch of big checks that might or might not get cashed (promised as much backing store as you have). Paging files add backing store, allowing the OS to keep writing checks.

share|improve this answer
    
Unfortunately, in the situations I describe above, the memory in question is clearly not from a recently terminated program. Windows shouldn't crash or display low-memory warnings simply because it doesn't feel like reallocating old, unused memory. I'm talking about situations where gigs of memory are apparently wired but unaccounted for. Situations where I can have 6 GB RAM plus 18 GB swap, but windows crashes because it's "out of memory" while task manager shows only 2 GB in use. –  Josh Mar 11 '14 at 12:15
11  
-1 because after reading the answer and all the comments, it still isn't clear why total used memory is much higher than the memory used by all listed processes. –  Bennett McElwee Aug 20 '14 at 1:34
1  
That terminology, where memory is "used" even though no program is using it, is quite unlike the normal meaning of words like "used" and "free" -- perhaps it's Microsoft's terminology, not yours. Anyway, suppose for example that 50% of RAM is currently used by running programs, and 25% is not used by any running program but contains data that might be useful in the future but can also be discarded. Adding those together and displaying "Memory: 75%" conveys no useful information to the user. I think that's where the widespread confusion comes from. –  Bennett McElwee Aug 20 '14 at 23:56
1  
@BennettMcElwee There is no good way to reduce memory usage to one simple number, but users insist on it. This puts developers in an uncomfortable position -- they can provide a number that is not always helpful or provide no number. Most OS and GUI developers choose the first option -- they provide a number that leads to lots of confusion. If your question is "would more RAM make my system work better", the answer is -- it's very, very hard to tell, even for experts. –  David Schwartz Aug 21 '14 at 3:10
1  
@ChrisMueller My answer explains why that is -- the OS won't waste memory unless it has no choice, regardless of what the processes are doing. Here is the key part again, "Consider, for example, memory that contains the code for a program that just terminated. No program is using it. But that memory is used, since it is not free and contains data that might be useful (in case the program runs again)." –  David Schwartz Feb 11 at 1:31

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