asp.netiiswindbgdebugdiag

DebugDiag shows long Running Since


Our app pool recycles several times a day. I'm pretty sure it's because it hits the memory limit. I'm also pretty sure that it should NOT hit the memory limit of ~3GB. I tried using WinDbg to analyze the memory dump, with little success. I might try again later. However using DebugDiag gives me some nice visualizations on the data and already lead to some changes that have reduced the number of times it recycles. One report that has me a bit confused and worried is the HttpContext Report. It shows some output like this :

HttpContext Timeout Completed RunningSince ThreadId ReturnCode Verb RequestPath+QueryString 
0x02374c94 110 Sec  No        995 Sec      ---      302        GET   /Loans/Details/529146/517006  
0x02472a44 110 Sec  No        993 Sec      ---      200        GET   /Login ReturnUrl=%2fLoans%2fDetails%2f529146%2f517006 
0x024d2f94 110 Sec  No        979 Sec      ---      302        POST  /Loans/UpdateDealer  
0x025773c0 110 Sec  No        951 Sec      ---      302        GET   /Applicants  
0x025d6bb4 110 Sec  No        951 Sec      ---      200        GET   /Login ReturnUrl=%2fApplicants 
0x025f5adc 110 Sec  No        935 Sec      ---      302        GET   /Applicants/Details/537358  
0x02654708 110 Sec  No        935 Sec      ---      200        GET   /Login ReturnUrl=%2fApplicants%2fDetails%2f537358 
0x026b1bb4 110 Sec  No        926 Sec      ---      200        POST  /Loan/InsertLoanChecklistItem  
0x027710dc 110 Sec  No        914 Sec      ---      200        GET   /Applicants  
0x02779320 110 Sec  No        915 Sec      ---      302        POST  /Login ReturnUrl=%2fApplicants 
0x02797448 110 Sec  No        914 Sec      ---      200        GET   /Loans/Details/523729/526198  
0x02867070 110 Sec  No        911 Sec      ---      200        POST  /Loans/UpdateAmount  

There are, of course, many many more lines in the report. Do I really have requests that have been running for 995 seconds (~15 minutes) and are still not complete? Are they just hung there? are they waiting for something else to finish? I'm not sure I can even believe it, let alone start diagnosing it. Can someone else give me some insight into how to interpret this data?


Solution

  • After a long research I got the solution, not exact solution, but it can help.

    The long running since column indicate the time from where its first request start. It does not mean the request time is to complete any single request for any user. So, here nothing to worry on this high number.

    Edit: http://blogs.msdn.com/b/yunjin/archive/2005/08/25/456355.aspx

    http://blogs.msdn.com/b/yunjin/archive/2005/08/29/457150.aspx

    http://social.msdn.microsoft.com/Forums/en/vsdebug/thread/17f783cd-d5af-4146-ab46-be80e62da750

    And for memory leak I would recommend to use WinDbg. WinDbg ref:

    http://blogs.msdn.com/b/alejacma/archive/2009/06/30/sos-cheat-sheet-net-2-0-3-0-3-5.aspx

    http://geekswithblogs.net/.NETonMyMind/archive/2006/03/14/72262.aspx