From: Fabrizio Cipriani on 22 Jan 2009 06:34
We had a problem the last days which took us some time to be sorted out:
We have an IIS application on Windows Server 2003 Standard edition with
iis6. In the application pool dialog, we set our application to recycle when
virtual memory limit reached 900Mb. We found out that our application
recycled very often, about every hour.
We then discovered that the virtual memory limit in the application pool
dialog is to be considered as the "virtual bytes" that you can find in the
performance monitor, rather than the "VM Size" you see in the task manager.
The first one is the virtual address space of the process, which includes
read only memory shared among the system processes such as shared DLLs, while
the latter is the memory actually COMMITTED by the process.
In fact, the virtual memory limit of 900Mb is hit very soon by our
application, though the physical memory usage shown in the task manager won't
go beyond the 300mb.
This lead me to a couple of questions:
- Shouldn't this be explained better in IIS documentation? Searching google
I've seen lots of people with unexpected application recycling which can be
caused by this misanderstanding.
- Isn't the default virtual memory limit of 500Mb in the application pool
dialog too low?
- What are the suggested physical and virtual memory limits, or I how can I
get to a suggested memory size by analyzing system memory consumption?
Thanks in advance