Tuesday, January 16, 2007
Posted on Tuesday, January 16, 2007 9:41:34 PM (Mountain Standard Time, UTC-07:00)  Comments [2] | 
Categories: ASP.NET | Web Services
I've been running my Server Monitor for a few days, and logged serveral thousand data points - more or less getting "perfmon" type data every minute. Pulling this into Excel we can see some interesting patterns...




As the number of running ASP.NET applications increase (blue dots) they top out around 28. At that point the server runs for a while, until something happens, and ASP.NET is effectively killed - all the worker processes are killed off (the running applications drop), RAM is freed up (we see the Mem Usage drop), and the response time is significantly higher than usual - which makes sense since the server is busy re-starting IIS or ASP.

Anyhow - I'm sending this data off to my hosting provider. I'll let you know how they handle it.

Source Code
Also - as promised - I've uploaded the source code for the web service and the viewer/logger. There is no step-by-step how to for using it - I assume that you understand web services, and WinForms. Just grab the code and have at it. You can contact me if you have problems. The logger is using SQL Express, and the SQL for creating the tables and a view (handy for pulling the data int Excel) is also in the zip.
Wednesday, January 17, 2007 6:43:51 AM (Mountain Standard Time, UTC-07:00)
hi dave

that looks like ASP.NET process recycling. I don't know what the default is for 2.0 but I think it was 1 hour for 1.1

configuration>
system.web>
processModel timeout="60" />
/system.web>
/configuration>

cheers
brian
Wednesday, January 17, 2007 12:45:14 PM (Mountain Standard Time, UTC-07:00)
Brian,

Thanks for the comment. I had thought that as well and that's what tech support came back with initially, but the thing is that the time span between these events is on the order of 8 to 12 hours, and can be as little as one hour. I did some digging and IIS6 defaults to recycling every 29 hours, but it can also be configured to recycle at specific times, or after a certain number of requests - which may explain the seemingly random span of time between events.

I have not been able to find any info on this, but if IIS is recycling the ASP applications, I would think that it would actually re-start them - i.e. we'd see a drop in the running apps (blue dots) for a short period of time, and then a jump back up to the previous level. Keep in mind that the time scale across the graph is ~3 days. The time between a drop, and hitting the max load is several hours.

Since I dont have access to the desktop, I can't get a peek at machine.config to see the processModel settings.

Anyhow - this issue is now off with their server techs, so we'll see what they come back with.

Cheers,

Dave
Comments are closed.