Loads of memory in "standby" on Windows Server 2008 R2

In our SharePoint farm, our Web Front End servers all have loads of memory in "standby" mode, meaning very little is available for our IIS worker process.

We have 32 GB of RAM in each of the boxes, and standby memory will creep up to about 28 GB, whereas the IIS worker process only seems to be using about 2 GB. Also, we've seen the machine use the swap file extensively while this memory was in standby, so I am starting to think that this memory in standby mode is stopping IIS from using it, forcing it to swap to disk, causing more performance problems.

I used SysInternals RamMap to indentify what is being kept in memory, and it was able to tell me that almost everything in standby memory is of type "Mapped File".

When I sort the files listed under the file summary tab in RamMap by file size, the largest files (around a few hundred meg each) are IIS log files and SharePoint log files.

I would like to understand which process is loading these files into standby memory and why they are not being released. When I do an iisreset, it does not release the memory.

Any ideas?

Thanks!


Solution 1:

Standby memory is data that has been Cached into memory, and has not been modified since (though it may have been read) and can be dropped if required. It can be instantly freed up on demand. If the physical RAM was needed for anything else, the Standby memory would be dropped, its kept in memory on the off-chance it'll be needed again, and it'll be quicker to fetch from memory than disk.

All mapped files are backed by the page file, so if a process has a mapped view of a 2 GB file, it'll be backed by 2GB of page file. So if IIS is running and has a number of log files open for writing, its quite possible they'll be reserving space in the page file. This isn't a problem, and wouldn't adversely affect performance.