ASP.Net 'lock ups'...

R

Rick Strahl [MVP]

Hi all,

I have an ASP.Net application that's online that's 'locking up' from time to
time. It doesn't completely lock up but all of a sudden it appears to be
stuck for about 20-30 seconds, before it catches and fires back up... The
app doesn't restart itself (I'm logging this stuff) - it just starts working
again. If there are multiple requests at that time they all are slow. They
all go through, just at a glacial speed.

I've checked everything I can think of including running perf mon to check
out the Sql Server Connection COunt and locks. When it happens there's
usually nothing happening on the machine, it's next to idle - certainly no
CPU load to speak off.

The ASP.Net app runs in its own application pool on Windows 2003.

I've started logging requests in the process of trying to figure out what's
happening and I notice that this seems to be happening on a fairly regular
basis with some of hte hangs taking 80 seconds or more. It seems it's worst
when the app goes idle for a while. What's interesting is that under load
the app never seems to have a problem and is leisurely serving 20-30
requests a second...

Anybody seen anything like this?

+++ Rick ---

--

Rick Strahl
West Wind Technologies
http://www.west-wind.com/
http://www.west-wind.com/wwHelp
 
A

Alvin Bruney

can you enable tracing on the application and capture the tracing log, then
corelate the lock up time to the tracing and it should point you to the
method which is burning time. Or after enabling tracing, just sift thru the
log, the large time gap should be viewable which will point you to the
method burning the clock (assuming that it is a method burning the clock).
It may not be but that would be a good way to rule out server side code as
the culprit.
either way, it aint gonna be a walk in the park
hth
 
R

Rick Strahl [MVP]

Hi Alvin,

Thanks for the pointers...

I think I've isolated the problem to an issue with SQL Server. Maybe a
deadlock or some other lock scenario since I have restarted IIS and the
problem continues. Right now I have profiler running and tracing the SQL
coming in...

I also have a request log running in the app that logs every single request
with start and end times. Problem is when the failure happens it's always a
random page. The handler looks for requests that take a long time and then
sends me admin email, so hopefully I'll have a chance to catch it <g>...

Trace log is probably not going to help much because of the above logging as
that's already giving me a pretty good idea where to look.

What is interesting is that when the slow requests happen they *ALWAYS*
happen after a long idle period. There will be 20-30 minutes or so before
the last request followed by a sequence of really slow requests... (which
owuld make sense - the requests probably try to access the db multiple times
and each sits for the timeout period including hte logging mechanism), which
at that point of course can't write.

Well, one step at a time... <g>

--

Rick Strahl
West Wind Technologies
http://www.west-wind.com/
http://www.west-wind.com/wwHelp
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top