I have a .NET Framework 4 ASP.NET application (combo of WebForms and MVC) which has been live for a number of years now. Over the last few months, the application would suddenly stop responding and the application pool would start to use 99% CPU and 3gb(!) of RAM. This happens about once every 2 weeks, although today it's happened twice.
Usually we kill the process and restart the app pool which works, however we've now taken dumps using DebugDiag to try to get to the bottom of this. However I'm having trouble working out what the issue is - the main reason being that it appears the Garbage Collector was either running or in an unusual state - '!dumpheap' gives me the below
The garbage collector data structures are not in a valid state for traversal.
It is either in the "plan phase," where objects are being moved around,
or we are at the initialization or shutdown of the gc heap. Commands related
to displaying, finding or traversing objects as well as gc heap segments may
not work properly. !dumpheap and !verifyheap may incorrectly complain of
heap consistency errors.
Address MT Size Object <exec cmd="!ListNearObj /d
01ef1000">01ef1000</exec> has an invalid method table.
I've ran ~*e !clrstack and got a lot of output, with nearly every thread showing 'System.Threading.Monitor.ReliableEnter'...is this normal?
I'm just wondering if anyone knows anything based on the above, or has any tips on analysing this dump file? The dump is a full dump so it's about 3gb
I've pasted my clrstack output below just incase anyone fancies a look!