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 - 28 Jun 2007 23:19 GMT
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
> While investigating a possible memory leak scenario in one our web
> services, we ran into a peculiar situation where the "private bytes"
[quoted text clipped - 19 lines]
> Thanks
> chen
Dave - 29 Jun 2007 13:21 GMT
you may want to install server 2003 sp2, there is at least one fix in there
about leaks of private memory.
> While investigating a possible memory leak scenario in one our web
> services, we ran into a peculiar situation where the "private bytes"
[quoted text clipped - 19 lines]
> Thanks
> chen