So right off the bat, not sure if this question is better suited for another StackExchange site.
I’ve got an ASP.NET MVC 3 web application running on Windows Server 2008 and IIS 7.5
Site runs fine initially, but i can see the memory usage gradually growing. After about 12 hours it’s nearly out of memory and the site chokes.
I’m using a lot of caching, so i’m thinking this combined with some possibly memory leaks is the cause of the issue.
So my question – what’s the best way (tools, for example) to monitor memory usage on a web server running ASP.NET MVC?
In the past i’ve used good old’ perfmon and put the IIS counters on to measure these things.
It this still the best way, and if so, can someone recommend a good perfmon counter template for my scenario?
Answers:
Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.
Method 1
Perfmon’s counters are still a good technique (and free!).
PAL (Performance Analysis of Logs), a free tool, has an ASP.NET perfmon counter template for general health (in addition to generating reports of counter log files based on thresholds).
Check out:
- .NET Debugging Demos Lab 7: Memory Leak
- .NET Memory Leak Case Study: The Event Handlers That Made The Memory Baloon
- Tracking down managed memory leaks (how to find a GC leak)
- Determine if your .NET Application has a Memory Leak
Commercial tools like MemProfiler, RedGate’s memory profiling tool and JetBrains Profiler are all very good (and all have free trials).
All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0