5

I have 4GB of RAM. But according to system monitor my PC never uses above 3.1 GB. When it reaches 3.1 GB used apps start to shut down/crash.

Why is that remaining 800MB not used?

I found a few web resources like: The usable memory may be less than the installed memory on Windows 7-based computers

But my PC does not say anything about usable memory. It's only 4GB and not limited.

Also found few other questions here, but every one has usable part displayed. And my PC does not show it.

system control panel image

I get the following error almost constantly:

low memory error image

Shouldn't it use swap instead of issuing errors?

Just a thought: I have less than 10% free space on disks, and they're red. It's still plenty of space on HDD, but maybe Windows then tries not to use swap?

Memory monitor: memory monitor image

Also, a screenshot of how swap file looks like when errors appear: enter image description here

15
  • 1
    The loaded OS needs RAM, likely to be the 800MB that you are "missing".
    – Hannu
    Commented Aug 24, 2015 at 14:36
  • 2
    @DragonLord read carefully. First of all its 64-bit. Secondly, sees all memory
    – Gacek
    Commented Aug 24, 2015 at 15:15
  • 2
    @qasdfdsaq Reopening is possible in both the pending and closed states. I have edited this question to try to make it more clear that it is not asking the same thing as the other questions. Also I have cast a vote to reopen this question. If this question is asked again as a new question, there is some risk of confusion because the new question could be considered a duplicate of this question. Commented Aug 25, 2015 at 16:26
  • 2
    @Gacek What makes you sure your swap file isn't being used? The image you posted of Task Manager's Performance tab indicates have 10 GB of Committed RAM. If this question were open right now I'd post an answer stating that you don't have 800 MB free RAM and that your swap file isn't large enough to accommodate your system's memory demand. Commented Aug 25, 2015 at 19:37
  • 1
    @twisty In other words, everything is normal here. Only things to do are to free up some hard drive space and/or add more RAM chips. Commented Aug 25, 2015 at 20:49

1 Answer 1

6

You really are out of memory (virtual memory, that is)

Take a look at your the Commit Charge as highlighted in your Task Manager screen shot:

enter image description here

First number = Current commit
Second number = Commit limit

According to this Super User answer:

The commit limit = current pagefile size + RAM size - RAM permanently allocated to nonpageable memory.

This is a hard limit: Windows cannot grant requests by programs for more memory beyond it. This screen shot indicates you have 10 GB of a possible 10 GB allocated to programs. This is triggering the "Out of memory" message.

What to do?

  1. Install more physical RAM. This will increase your Commit Limit accordingly and improve your computer's performance.

  2. Increase the size of your page file. This too will increase your Commit Limit, but because paging slows down a computer, don't expect any performance benefit.

  3. Close programs that are using the most memory. You can return to the Memory tab in Resource Monitor and sort the processes by the Commit (KB) column to see which ones are having the greatest impact on your memory use. Perhaps you have a program that's using too much memory that can be closed. Be aware that "The total commit charge will always be larger than the sum of these values, as the total includes system-wide allocations such as the paged pool." (Source)

12
  • Increased paging size limit. 4GB RAM + 10000MB Pagefile (init size) gave me x/13GB commit size. Hope this will suffice for now. But thanks to this i know (or think) now I could utilize even 16GB of RAM. Getting new spec soon and plan to make it 16GB + space for additional 16GB just in case. My current system is 2/2 RAM slots. Very much thank you for your answer. Didnt know what this filed was before.
    – Gacek
    Commented Aug 26, 2015 at 14:55
  • 1
    Correct. Commit is the total amount of comitted memory that has been requested but not necessarily used. A lot of applications speculatively request more memory than actually needed but this all has to be physically backed somewhere, i.e. with RAM or a pagefile. In extreme cases you could have a program that requires 100MB request 100GB ,and you would need a 100GB pagefile to run it.
    – qasdfdsaq
    Commented Aug 26, 2015 at 15:17
  • 1
    @Twisty Acually what DanielB said is clearer to me. I may not be windows memory management spec. I'm just a simple webapp programmer and don't care about how windows manages memory. Only care for apps to take as less as possible. And app allocating memory means to me that it takes this memory and it belongs to this app only.
    – Gacek
    Commented Aug 26, 2015 at 17:34
  • 1
    @Gacek Fair enough. The very reason we have community is so multiple perspectives can bring about the clearest information. Commented Aug 26, 2015 at 17:37
  • 1
    Just to note: setting initial level of swap file (my windows does not like to allocate to higher limit and system controlled option fails here. It didn't want to go beyond certain point) high solves all my out of memory errors. Thank you @Twisty :)
    – Gacek
    Commented Aug 27, 2015 at 16:58

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .