Groups | Blog | Home
all groups > dotnet framework > june 2007 >

dotnet framework : Native Memory leak? (Private bytes increases resulting in worker process recycling)


chen
6/28/2007 3:02:39 PM
While investigating a possible memory leak scenario in one our web
services, we ran into a peculiar situation where the "private bytes"
of the worker process continued to increase steadily while the .NET
CLR Memory counter '# Bytes in all heaps' remained constant. Pretty
much all the documentation that we've read so far states that this
points to native memory leak and is not a managed memory leak.

So to test this theory further, i created the basic Hello World web
svc & monitored the "private bytes" counter in perf mon/
ProcessExplorer. The app pool was set to recycle when the "Maximum
used memory (in MB)" set to 25. Sure enough, the private bytes used
showed a steady increase and caused the app pool to recycle! What
exactly is happening/leaking here? We've been struggling for the past
3 days to eliminate unnecessary obj allocations and reached a stage
where everything was commented but it still happened. Any ideas?

Config:
IIS 6.0 running on Windows Server 2003 (SP1).
Hello World web svc in .NET 1.1 as well as .NET 2.0 displays the same
behavior.

Thanks
chen
Pramod Anchuparayil
6/28/2007 3:19:30 PM
Have you tried using any .NET Memory Profilers? They allow you to snapshot
memory at different intervals and compare it.

Try something like http://memprofiler.com/ or
http://www.jetbrains.com/profiler/

I have used both and I like the former and was helpful in troubleshooting a
similar issue.

- Pramod

[quoted text, click to view]
AddThis Social Bookmark Button