Author: tct_rammapSubject: RAMMap-Mapped File-High Standby Memory-Where from?
Posted: 16 March 2016 at 6:41pm
I am using RAMMap to try and understand what is using all my "Standby" memory.
I realise that Standby memory will be reused, on a priority basis from 0-7, for any allocations and is considered part of Windows' "Available Memory" = Free + Standby.
However given the Standby usage is so large (many GBs) I am interested what is currently in a Standby state to see if this indicates anything strange.
Using RAMMap I can see the predominant usage is in the "Mapped File" area.
When I go to the File Summary tab however this tab does not account for the GBs of Standby memory that the Mapped File area reports.
How can I understand what is using this standby memory in the "mapped file" allocations?
I was under the impression that when a process exits its memory is often added to the free list rather than standby?
If I quote from the Windows Internals 6th Edition book from Chapter 10 on Memory Management:
When a process has to give up a page out of its working set (either because it referenced anew page and its working set was full or the memory manager trimmed its working set), thepage goes to the standby lists if the page was clean (not modified) or to the modified list if thepage was modified while it was resident.
When a process exits, all the private pages go to the free list. Also, when the last reference toa page-file-backed section is closed, and the section has no remaining mapped views, thesepages also go to the free list.
So it would seem if I am interpreting that correctly only active processes will have Standby Memory references, as all exited processes would have returned their memory to the free list.
There is one ambiguous case that comes to mind, and that is if a process, for some reason, placed pages on the Standby List and then exited. In that case could you have memory in standby that does not correspond to an active process?
This explanation, for my system, is somewhat strange as it is not clear why so much memory should be in Standby as I doubt I am seeing conditions regularly where processes referenced a new page and its working set was full or the memory manager trimmed its working set.
Can anyone help?