My windows 7 machine with 16GB of physical RAM occasionally warns of of a low memory condition, asking me to close programs to free up memory. When I check task manager or resource monitor I find that there is nearly 8GB free. Several (one or two) processes (rdbms, tomcat server, etc.) will be consuming large (~4GB of memory each) but the machine does not seem to be running low on memory when this warning is displayed.
My questions:
- Why is this warning being displayed if the amount of physical memory seems to be more than adequate for the tasks at hand?
- Is there a way to set thresholds for when these low memory warnings are issued?
Answer
The problem is that while the memory is available, Windows 7 has already promised it to applications. The solution is to make sure you have a large enough pagefile. This allows Windows to continue to make commitments without fear that should all the commitments be claimed at once it won't have enough physical memory to meet them.
I explained this phenomenon in more detail here. You can have plenty of free memory but Windows can still be unable to allocate more because that free memory is already promised to applications that will probably never use it.
No comments:
Post a Comment