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!

link|improve this question
It's probably Windows caching. Windows will use almost all available memory for caching, and release it as soon as an application needs it. – Chris S Aug 3 '11 at 16:13
The problem is that it doesn't seem like it's being released, and IIS seems to be desparate to use some of it (to avoid swapping to disk) – Jaap Aug 5 '11 at 12:12
IIS by default will not use swap. By default it will leave 5% free and fail new connections. Is there anything else running on the computer. Try running sfc /scannow already? – Chris S Aug 5 '11 at 12:15
feedback

2 Answers

Windows is usually good about using memory when it is available, and releasing it when other processes require it. A "mapped file" does not use physical memory, but only virtual memory. A process can map a file to memory to access the file contents as if it were in memory - and this method can be faster than accessing the file through traditional methods. But again, this does not mean that the entire file is loaded into memory.

Are you seeing actual performance issues on the machine?

Can you post some of the stats from the "Performance" tab from Windows Task Manager?

link|improve this answer
Thanks for your answer Lucky Luke - We ARE noticing performance problems with our SharePoint environment. We were expecting the IIS worker process to grab more memory than 2gb, and in fact it appears to be swapping to disk which seems to increase CPU and slow down processing of client requests. Then again, I'm a developer so I could be completely wrong. Let me see if I can give you some stats from Task Manager. – Jaap Aug 5 '11 at 8:52
Please, that would be helpful. You can also save the information from the rammap in a .rmp file and share it, then we can take a look at it. – Lucky Luke Aug 5 '11 at 16:05
feedback

Has someone switched IIS to run 32 bit application pools that can not grow more than 2gb ? ;) This ist he recommended configuration. IIS itself uses no real memory - it is pretty much the asp.net worker processes that should go up. Start checking their configuration.

link|improve this answer
feedback

Your Answer

 
or
required, but never shown

Not the answer you're looking for? Browse other questions tagged or ask your own question.