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.

So I am running on Windows 7 (64-bit) Home Premium with 12 GB RAM (Intel Core i7 920).

I have restricted the Page File to 400MB since it was eating up a lot of space om my SSD (that is 80GB).

After that I sometimes get the "low memory"-warning, like this, except for the behold-comment: Low memory warning in Windows 7

When I get those warning I have usually a lot of RAM available; when I check Resource Manager I have over 2GB "Free" and over 2GB "Available" - usually more than that.

The diskspace on all my drives have over 10GB free.

So the question is - why does Windows complain? It actually restarted by computer (hard boot) when it happened, and as I said - lots or RAM available.

share|improve this question
    
I recon this is a windows issue. Windows Vista and 7 actually cache a lot of the RAM memory. Can you ignore the warning and continue with your normal work or it forces you to close the program? –  xciter May 27 '11 at 9:04
    
If I am at the computer I can usuallyt press cancel, but that shouldnt be necessary in the first place. Also, it did happen once (when I was not at the computer) that the computer did a hard reboot... –  Ted May 28 '11 at 18:38
add comment

2 Answers

Using a page file so much smaller than your RAM is probably the issue. Windows will be trying to pass idle app memory off onto disk and it'll get upset.

Usually the auto settings work out well, but you do seem to have a high ratio of RAM to disk space so I understand why that may be a problem.

share|improve this answer
    
I still dont get it. If the virtual memory, ie diskspace, isnt enough then why not use the RAM? Because it doesnt... –  Ted May 28 '11 at 18:37
    
@Ted This is like saying "I have lots of money in the bank, why can't I keep writing checks?" RAM is money in the bank. Virtual memory is a check. If Windows doesn't have enough backing store (page file), it can't keep writing checks even if it still has money in the bank. –  David Schwartz Jan 9 at 7:37
    
Luckily, Europe has really never had checks (maybe with exception for England), and the whole check system is from the stone age. In Europe, and especially in Sweden, we use electronic transfers that is quick and immediate. If there is RAM in the bank, please use it (like a debit card would). If there is RAM, and Windows complains about to little memory, then Windows is doing it wrong. –  Ted Jan 9 at 9:34
    
Unfortunately, here in Scotland we have had cheques forever, so this analogy does make perfect sense to me. (Luckily while large organisations still like cheques, most people can now happily use fast electronic transfers) –  Rory Alsop Jan 9 at 13:38
    
@Ted Programs ask for memory, the OS grants it. This is just an accounting thing initially, the memory's not actually allocated -- just promised. At some point, regardless of how much RAM is actually in use, Windows has to stop making promises if it can't keep all of the promises it has already made plus the new ones. If a program asks Windows for 3GB of backed virtual memory and Windows says "yes, you can have it", Windows must reserve 3GB of backed virtual memory for that process, even if it's not using it yet. This can cause a shortage of virtual memory even with lots of free RAM. –  David Schwartz Jan 21 at 15:53
show 1 more comment

Your problem is with Virtual Memory.

Applications ask windows to commit a certain amount of virtual memory to it. This does not mean the application will use all the memory committed, only that Windows promises to make it available if need be. When you look at memory usage only memory actually being used is show, not how much virtual memory has been committed to the process.

The commit limit of windows is RAM plus pagefile, because windows won't make a commitment it can keep. So you have a commit limit of 12.4GB. Since committed virtual memory isn't actually used applications aren't afraid to ask for large commitments. So it is quite common to have the virtual memory usage a lot larger than the actual memory usage.

As you I've shrunk my pagefile to make more room on my SSD. I set the initial size to 512, but the maximum size to 8GB, just so that windows can grow it if need be. Currently it is 1.4GB so the initial 8.5GB of virtual memory I had hasn't been quite enough.

You can also go hunting down the application that is using all the virtual memory. In task manager set it to show you the commit size of the running processes.

As an example: Catalyst Control Center has a Private Working Set (memory usage) on my machine of 3MB but a Commit Size of 112MB.

share|improve this answer
    
Hmm, i will take a look at it nex time it happens... but its weird that windows complains that its low on memory if the apps dont reallyt use it... –  Ted May 28 '11 at 18:38
2  
The confusion comes from thinking about RAM as memory, when in many ways it isn't. Apps never use RAM, only Virtual Memory; they have no access to the RAM itself. Windows then stores some of the content of Virtual Memory in RAM for performance reasons. It is just one of many things Windows stores in RAM. In reality Widows strives to use all available RAM all the time, for content in virtual memory or to cache other things. So the complaint about memory has nothing to do with RAM. This means you can't even tell how much RAM you need on the basis of how much is used. –  Mr Alpha May 28 '11 at 20:31
    
Sorry to say that, but the truth is that the windows 7 memory management is poorly written. You cannot disable or have smaller paging file, whatever be the size of RAM. Even if I enable paging file, I do not expect the paging to happen when RAM is still free (or used for cache), unless the memory manager is stupid. –  user1969104 Apr 14 at 11:11
    
@user1969104 The paging doesn't happen, nor it is used for cache. It just needs to be available. The memory manager is being smart and safe. It won't write checks it can't cash, even if it's very unlikely that all its checks will be cashed at once. –  David Schwartz Apr 24 at 17:38
add comment

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.