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
1  
also kernel memory counts into usage. Post picture of RAMMAp: blogs.technet.com/b/askperf/archive/2010/08/13/… –  magicandre1981 Mar 11 at 5:24
1  
I think the question should be titled "Why am I running out of memory." –  surfasb Mar 11 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 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 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 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 at 12:15
    
(See updates to answer.) –  David Schwartz Mar 11 at 12:33
    
David, by "backing store" do you mean the page file? The maximum size of the page file on windows seems to be 3 times the amount of RAM available. Mine is set to use that, so I've got a full 18 GB of page file. However, I don't think that's getting used up. Like I said, Task Manager says that I have 8 GB "memory" - its word, not mine, but obviously referring only to RAM. Task Manager also says that 90% of that 8 GB is currently used, and Windows warns me that this is a critical problem... and then crashes and logs me out if I ignore it. –  Josh Mar 13 at 2:33
    
PS: I'm using the word "memory" not because I don't know the difference between RAM and VM, but because my computer is only telling me that it's out of "memory" without giving me any info at all what it actually means. (I assume it means RAM, for the reasons I specify in the previous comment, but I'm not certain.) I'd rather you use the real vocab (which I can look up if necessary) than elaborate financial metaphors :) –  Josh Mar 13 at 2:43
    
@Josh Ahh, then that's the confusion. It's not out of RAM, it's out of backing store due to commitments it has already made. The solution is to increase the backing store by increasing your paging file. –  David Schwartz Mar 13 at 4:15

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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