[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

microsoft.public.dotnet.framework.remoting

Performance Monitoring: Context Proxies

v3ct0r m4yh3m

10/11/2004 9:50:00 PM

After monitoring my remoting application with Performance Monitor, I've
noticed that the count on the ContextProxies counter is only going up. Every
call increments this number and it will never go down. Does anyone know if
the ContextProxies counter simply adds new proxies created, or is this
telling me that my app is not letting go of a remote object.

Thanx in advance.


4 Answers

Ken Kolda

10/11/2004 10:37:00 PM

0

Here's what I get when I got to that counter in PerfMon and hit the Explain
button:

"This counter displays the total number of remoting proxy objects created in
this process since the start of the process. Proxy object acts as a
representative of the remote objects and ensures that all calls made on the
proxy are forwarded to the correct remote object instance."

Sounds like what you're seeing is the expected behavior.

Ken




"v3ct0r m4yh3m" <v3ct0rm4yh3m@hotmail.com> wrote in message
news:egCaGz9rEHA.2000@tk2msftngp13.phx.gbl...
> After monitoring my remoting application with Performance Monitor, I've
> noticed that the count on the ContextProxies counter is only going up.
Every
> call increments this number and it will never go down. Does anyone know if
> the ContextProxies counter simply adds new proxies created, or is this
> telling me that my app is not letting go of a remote object.
>
> Thanx in advance.
>
>


Joshua Belden

10/11/2004 10:59:00 PM

0

That's what I was thinking but unfortunately, the memory usage keeps rising
on every call and I can't figure out what is not letting go. Crap... Stupid
Memory Leaks.

"Ken Kolda" wrote:

> Here's what I get when I got to that counter in PerfMon and hit the Explain
> button:
>
> "This counter displays the total number of remoting proxy objects created in
> this process since the start of the process. Proxy object acts as a
> representative of the remote objects and ensures that all calls made on the
> proxy are forwarded to the correct remote object instance."
>
> Sounds like what you're seeing is the expected behavior.
>
> Ken
>
>
>
>
> "v3ct0r m4yh3m" <v3ct0rm4yh3m@hotmail.com> wrote in message
> news:egCaGz9rEHA.2000@tk2msftngp13.phx.gbl...
> > After monitoring my remoting application with Performance Monitor, I've
> > noticed that the count on the ContextProxies counter is only going up.
> Every
> > call increments this number and it will never go down. Does anyone know if
> > the ContextProxies counter simply adds new proxies created, or is this
> > telling me that my app is not letting go of a remote object.
> >
> > Thanx in advance.
> >
> >
>
>
>

Ken Kolda

10/11/2004 11:35:00 PM

0

Is this memory leak on the client or the server? Usually I would expect to
see the Context Proxies count climb most on the client since it's the one
creating proxies, especially if you use a lot of CAOs.

As for memory leaks, keep in mind that, once remoted, objects won't be
released by the remoting system for about 5 minutes after they're last
accessed unless you're managing the lifetime manually or have changed the
default options. So, if you've got a lot of CAO creation going on, you'll
probably climb quickly for a while before leveling off as the objects get
destroyed.

One thing you can also check on in PerfMon is the GC generation info. Are a
lot of objects making it into generation 1 and 2? Is the gen 2 heap growing
and growing? If so, this will cause what looks like a memory leak since the
GC will collect only gen 0 until absolutely necessary to move to the later
generations (or until you force it by calling GC.Collect()).

Ken


"Joshua Belden" <JoshuaBelden@discussions.microsoft.com> wrote in message
news:2BF1AB46-DEA0-4BBF-A1C5-67F30FC228B9@microsoft.com...
> That's what I was thinking but unfortunately, the memory usage keeps
rising
> on every call and I can't figure out what is not letting go. Crap...
Stupid
> Memory Leaks.
>
> "Ken Kolda" wrote:
>
> > Here's what I get when I got to that counter in PerfMon and hit the
Explain
> > button:
> >
> > "This counter displays the total number of remoting proxy objects
created in
> > this process since the start of the process. Proxy object acts as a
> > representative of the remote objects and ensures that all calls made on
the
> > proxy are forwarded to the correct remote object instance."
> >
> > Sounds like what you're seeing is the expected behavior.
> >
> > Ken
> >
> >
> >
> >
> > "v3ct0r m4yh3m" <v3ct0rm4yh3m@hotmail.com> wrote in message
> > news:egCaGz9rEHA.2000@tk2msftngp13.phx.gbl...
> > > After monitoring my remoting application with Performance Monitor,
I've
> > > noticed that the count on the ContextProxies counter is only going up.
> > Every
> > > call increments this number and it will never go down. Does anyone
know if
> > > the ContextProxies counter simply adds new proxies created, or is this
> > > telling me that my app is not letting go of a remote object.
> > >
> > > Thanx in advance.
> > >
> > >
> >
> >
> >


Joshua Belden

10/11/2004 11:45:00 PM

0

The memory increase is 90% on the client side and I think you're right, I'm
not testing long enough. Honestly I know very little about the garbage
collection but I will throw in the gc counters and let it go for a while.

"Ken Kolda" wrote:

> Is this memory leak on the client or the server? Usually I would expect to
> see the Context Proxies count climb most on the client since it's the one
> creating proxies, especially if you use a lot of CAOs.
>
> As for memory leaks, keep in mind that, once remoted, objects won't be
> released by the remoting system for about 5 minutes after they're last
> accessed unless you're managing the lifetime manually or have changed the
> default options. So, if you've got a lot of CAO creation going on, you'll
> probably climb quickly for a while before leveling off as the objects get
> destroyed.
>
> One thing you can also check on in PerfMon is the GC generation info. Are a
> lot of objects making it into generation 1 and 2? Is the gen 2 heap growing
> and growing? If so, this will cause what looks like a memory leak since the
> GC will collect only gen 0 until absolutely necessary to move to the later
> generations (or until you force it by calling GC.Collect()).
>
> Ken
>
>
> "Joshua Belden" <JoshuaBelden@discussions.microsoft.com> wrote in message
> news:2BF1AB46-DEA0-4BBF-A1C5-67F30FC228B9@microsoft.com...
> > That's what I was thinking but unfortunately, the memory usage keeps
> rising
> > on every call and I can't figure out what is not letting go. Crap...
> Stupid
> > Memory Leaks.
> >
> > "Ken Kolda" wrote:
> >
> > > Here's what I get when I got to that counter in PerfMon and hit the
> Explain
> > > button:
> > >
> > > "This counter displays the total number of remoting proxy objects
> created in
> > > this process since the start of the process. Proxy object acts as a
> > > representative of the remote objects and ensures that all calls made on
> the
> > > proxy are forwarded to the correct remote object instance."
> > >
> > > Sounds like what you're seeing is the expected behavior.
> > >
> > > Ken
> > >
> > >
> > >
> > >
> > > "v3ct0r m4yh3m" <v3ct0rm4yh3m@hotmail.com> wrote in message
> > > news:egCaGz9rEHA.2000@tk2msftngp13.phx.gbl...
> > > > After monitoring my remoting application with Performance Monitor,
> I've
> > > > noticed that the count on the ContextProxies counter is only going up.
> > > Every
> > > > call increments this number and it will never go down. Does anyone
> know if
> > > > the ContextProxies counter simply adds new proxies created, or is this
> > > > telling me that my app is not letting go of a remote object.
> > > >
> > > > Thanx in advance.
> > > >
> > > >
> > >
> > >
> > >
>
>
>