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.

Windows reserves some memory for it's internal use which is not normally allocated to applications. This reserve is seen most easily if you run without a page file or limit the pagefile to relatively small size (such as 3GB). Windows will allocate primarily RAM up to the limit, fill up remaining free space in the page file (if any) and issue a low memory warning when there is no page file space left and the allocated RAM limit is exceeded.

The limit appears to be a percentage of the total system RAM. Windows 7 x64 limit is discussed here and methods for circumventing the "low memory warning" is discussed here.

Disabling the low memory warning has some advantages - You can use some 600MB more RAM on 8GB machine) But there is a serious disadvantage - When you're out of ram, programs will crash.

How much RAM can you allocate on 8GB Windows 8 x64 before you get the low memory warning? Is it possible to adjust the warning threshold?

share|improve this question

closed as not constructive by Ƭᴇcʜιᴇ007, TFM, akira, soandos, ChrisF Nov 20 '12 at 12:01

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

4  
Do you have any sources for this 25% claim? It sounds pretty crazy to me and I haven't been able to find any source to back this up using the obvious search keywords. –  David Schwartz Nov 5 '12 at 16:20
    
@DavidSchwartz: he seems to refer to system-memory, the kind of ram the OS itself needs to run. i doubt that windows8 will give up ram of something it needs to breathe :) –  akira Nov 5 '12 at 16:21
3  
The title sounds silly to me. How can apps possibly use all the installed memory? Where would the OS go? –  Karan Nov 5 '12 at 16:25
    
The Windows 7 machine I'm sitting in front of right now has 8GB of physical RAM and only 41MB free. So roughly 99.5% of RAM is being used right now. –  David Schwartz Nov 5 '12 at 16:25
    
@DavidSchwartz: no, you are seeing a number the OS is telling you about available ram. that is: minus the part that is reserved by the OS itself (drivers, graphics, kernel etc). –  akira Nov 5 '12 at 16:28

2 Answers 2

This behavior is inherent in modern memory management. It will occur on pretty much every modern virtual memory OS if the amount of available backing store (pagefile or swap space) is not sufficient relative to the amount of physical memory.

If you look at modern applications on a Windows system, you can see that their working set (the physical memory they are using) will tend to be a bit less than their commit size (the virtual memory the operating system has promised them).

For example, on my desktop Windows machine, the browser I'm using to type this answer is using 207MB of RAM, but the operating system has already promised it 280MB of virtual memory. This means that at any second, the browser can consume 280MB of virtual memory without having to ask the operating system for permission, just by accessing mappings it already has. The operating system either needs to provide the process with this memory, or it has to forcefully terminate it, failing to honor commitments it has already made.

With no backing store at all, with just physical RAM, 73MB of additional RAM would have to be reserved for this application. Even though the browser is only using 207MB of RAM, it can balloon to 280MB just by using memory it has already allocated that the operating system has not actually allocated to it yet (just reserved).

If the operating system has sufficient backing store for all its commitments, then it can continue to make commitments. But it not, it's forced into an unpleasant choice. It can tell applications that it cannot make any more commitments, even though there's plenty of free RAM. Or it can grant application commitments, but then have to forcefully terminate applications when they go to use resources they've already allocated.

The solution is simple, configure ample backing store. This used to not be a problem. Everybody had giant disks with hundreds of gigabytes. So adding backing store equal to your physical memory wasn't a problem. However, recently machines with small SSDs are becoming common. So this is becoming an issue again.

Note that the page file need not even be touched for it to solve this problem. The operating system just needs to know it's available in the unlikely case that a significant number of commitments be called in at the same time. This almost never actually happens -- it's kind of like a run on the memory bank.

share|improve this answer
1  
Increasing page file size will of course allow more memory to be committed but it won't change the low memory warning threshold or make W7 x64 use last 25% of RAM for applications. WRT pagefile size, on HDD 2GB is already a lot. 3GB is borderline useless if it's actually accessed. "1.5x RAM amount" is ancient wisdom from WfWG era, hardly valid for today. Mark Russinovich article here discusses that. Note also Pavel's comment VRT Vista virtual memory design choices. blogs.technet.com/b/markrussinovich/archive/2008/11/17/… –  Barleyman Nov 6 '12 at 11:53
    
The low memory warning threshold is based on available virtual memory. So adding more page file space will change when the low memory warning appears. And, as I wrote, the point is not that Windows will actually use the space but that Windows will be able to commit it to avoid a "run on the bank", allowing it to avoid refusing allocations and make more efficient use of physical RAM. With insufficient backing store, you can wind up with plenty of free physical RAM and no way to use it because it's already committed to applications that will actually never use it. –  David Schwartz Nov 6 '12 at 11:58
    
No, the low memory warning is tied to the amount of RAM actually in use. Increasing page file will not change this behavior. System with 4GB pagefile will not allocate any more RAM at all to apps compared to system with 2GB pagefile, you will still get low memory warning with exact same amount of unallocated RAM. In other words, you may be using 95% of your virtual memory with big pagefile but you get low memory warning the instant system is forced to commit more than 75% of RAM for apps. There is another, higher threshold where windows actually refuses to allocate any memory. –  Barleyman Nov 6 '12 at 12:03
    
@Barleyman: Do you have a reference for that claim? That conflicts with my observations and every source I can find says that this is only an issue for systems with no (or almost no) paging file. –  David Schwartz Nov 6 '12 at 12:08
2  
I honestly don't understand what you're saying at this point. There is no RAM that doesn't get utilized (except for the interrupt emergency pool which is typically less than 100MB). Yes, the system has to balance clean pages against dirty pages, application memory against page cache, and so on. And if the system has insufficient page file, it may be unable to use RAM effectively. Nothing, however, is broken and so there's nothing to fix. Most likely, what you are seeing is memory used as a clean page cache. You don't want to shrink that or you get lots of hard page faults. –  David Schwartz Nov 6 '12 at 14:18

From Memory Limits for Windows Releases:

1
2
3

4
(See full table for further details about user and kernel-mode virtual address space limits etc.)

That bit highlighted in red is probably where you got that idea of a 25% limit from. Yes, only ~3 GB of RAM out of 4 GB installed is available to 32-bit processes on 32-bit versions of Windows, and this hasn't magically changed with Windows 8. As for why this is, I'm not going to bother repeating all the articles on the internet that have already explained this in detail, including Jeff Atwood's Dude, Where's My 4 Gigabytes of RAM?

share|improve this answer
    
technet.microsoft.com/en-us/sysinternals/ff700229 good tool to see how the RAM is used. –  akira Nov 5 '12 at 16:36
    
These are limits specific to 3GB/4GB. His question was clearly about a 25% limit that scales with the amount of RAM you have. So this can't be what the OP was asking about. "That was fine when Vista was designed, when machines had 1 GB of total memory, but is pretty daft for today's 8 GB machines." –  David Schwartz Nov 5 '12 at 16:38
    
@DavidSchwartz: Then he needs to specify where he got this info. from, as you yourself stated above. It's entirely possible he read something and then extrapolated it without hard evidence about the limit on modern machines with oodles of RAM. –  Karan Nov 5 '12 at 16:41
    
I agree. We can only guess what the OP was thinking. There is no 25% limit. There are virtual memory limits that apply to 32-bit processes and physical memory limits that apply to 32-bit operating systems. (And the other, harder to hit, limits in the table above.) –  David Schwartz Nov 5 '12 at 16:41
    
@DavidSchwartz: Yup, the only reasonable explanation I could come up with for that number was the bit highlighted above. ~1 GB unusable out of 4 might imply there's some sort of hard-coded 25% limit to someone who doesn't know the reason. –  Karan Nov 5 '12 at 16:44

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