Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

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?

Edit: I can't answer this myself as it got closed due to arguing for arguing's sake. However I answered it here: What is the "low memory warning" threshold with 16GB x64 windows?

In short, yes, Windows 8.1 x64 will behave the same way as Windows 7 x64 did. If you're low on Commit limit - Commit charge, a fairly large percentage of RAM is still kept available if at all possible. This is done by moving more things into pagefile.

What is the "low memory warning" threshold with 16GB x64 windows?

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.

5  
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
1  
@Barleyman: That question was about the case where there's no page file. Windows cannot overcommit physical RAM without a page file. The solution to that problem is very simple -- you need a reasonably-sized page file. Otherwise, Windows would fail horribly if applications dirtied pages up to their commit limits. The issue is that while the RAM is not in use this second, Windows has already promised it to applications. Without a page file to cover its checks, it can't write any more. (OSes other than windows have this same issue. It's inherent in modern memory management.) – David Schwartz Nov 6 '12 at 11:10

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
1  
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
1  
@Barleyman: The operating system is complaining that it does not have memory when there is still 3GB reserve left because it is low on virtual memory. This is because the operating system made commitments to applications that it may need to honor in the future, even if the applications aren't using that memory yet. For example, if a program makes a private, modifiable mapping of all of a 4GB file, the operating system must reserve 4GB of virtual memory in case the application writes to every byte of that mapping. No RAM is needed yet though and the application may never write at all. – David Schwartz Nov 6 '12 at 12:58
3  
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
1  
@Barleyman Perhaps this analogy will help: You have lots of money in the bank (RAM), but you also have a bunch of checks that haven't been cashed yet (allocation of virtual memory). Even though you have lots of money sitting in the bank doing nothing (free RAM), you can't write any more checks (permit mappings that might require backing store in the future) without risking bouncing a check (having to forcefully terminate an application in the future). – David Schwartz Nov 22 '15 at 2:25

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.