views:

54

answers:

1

my web applications app pool configuration is PeriodicRestartMemory : 512000 PeriodicRestartPrivateMemory : 196608

although the virtual memory limit is higher than private memory, app pool is recycled with virtual memory limits exceeded errors in the event log (instead of private memory).

what is the reason for this? how could it exceed virtual memory limits before exceeding private memory limits? it seems that systems other allocations in virtual memory cause limits exceeded before applications private allocations exceed the limits, but what are those allocations of the system? or what is the root cause of this.

thanks

A: 

From Tess Ferrandez's blog:

Simplified, Virtual Bytes is the memory that the process reserves, Private Bytes is how much of that the memory that the process actually uses.

She also has a good description of the likely problem in her post ".Net Memory Usage - A restaurant analogy"

Basically, your app is attempting to reserve more memory than is available to be allocated - Tess has a number of good posts on looking into likely causes.

Zhaph - Ben Duguid