You wont run 4 asp.net proceses don't you? but even if you did, the Windows
OS uses a VM management system, so it does not mean that all memory
committed for all processes must be and shall be in RAM memory.
Anyway, what's important is, when talking about the managed heap is the
space taken in every generation.
Threfore you should look at the Gen0, 1, 2 and largeheap counters, they are
far more important than the reserved bytes, because this doesn't represent
anything physical. It's possible that during application run the heap did
grow up to 647 MB and tha now only 145 MB remains committed, that means 500
MB has returned to the system.
Now if your application consumes ( at some point in time) that much memory
(647MB) you have to inspect your allocation pattern, check what objects you
are allocating and what there type is (Large objects?).
Willy.
Well, I do not think that "The reserved bytes is not the problem, the
commited bytes is somewhat more important but not that much" !
One app does take 647MB RAM although it only needs 145MB RAM !
What if we had 4 such apps ???
We would need 4GB RAM to only use 600MB !
The ASP.Net Process should release this memory for other programs and
not hold it !
We cannot reduce memory usage because it depends on the last on our
server!
The problem is asp.net not releasing the memory when the last does
drop!
Any idea ?
Arkam
Willy Denoyette [MVP] a écrit :
> The reserved bytes is not the problem, the commited bytes is somewhat more
> important but not that much, what realy counts is the working set and
[quoted text clipped - 28 lines]
> >
> > Arkam
Arka - 02 Nov 2005 12:00 GMT
We are running many w3wp process (we use AppPools).
What you describe is exactly what happens!
Our application needs sometimes a lot of memory for short times.
But this part:
"that means 500 MB has returned to the system."
is wrong because the system cannot use these 500MB anymore because they
are "reserved" for our w3wp process !
What can we do ?
Arka
Willy Denoyette [MVP] a écrit :
> You wont run 4 asp.net proceses don't you? but even if you did, the Windows
> OS uses a VM management system, so it does not mean that all memory
[quoted text clipped - 68 lines]
> > >
> > > Arkam
Willy Denoyette [MVP] - 02 Nov 2005 19:23 GMT
Well, if you run multiple w3wp to have to consider that you will need lots
of memory to begin with. Also I asked to look at the "Private bytes" and
"Working set" counters, but you keep insisting on the CLR counters that have
NO value here, and YES the memory is returned to the system if the system
needs it it will take it believe me, reserved or not. Of course if all of
your w3wp processes use 500MB at some point in time and you have a lot of
them you will need a lot of memory. As for your managed memory consumption,
did you ever consider to use a memory profiler to measure your allocation
pattern?
Willy.
We are running many w3wp process (we use AppPools).
What you describe is exactly what happens!
Our application needs sometimes a lot of memory for short times.
But this part:
"that means 500 MB has returned to the system."
is wrong because the system cannot use these 500MB anymore because they
are "reserved" for our w3wp process !
What can we do ?
Arka
Willy Denoyette [MVP] a écrit :
> You wont run 4 asp.net proceses don't you? but even if you did, the
> Windows
[quoted text clipped - 78 lines]
> > >
> > > Arkam