Re: IIS 5 100% CPU troubleshooting tools - IISState?

From: M. Rafferty (mmr_at_vistagrande.com)
Date: 02/17/04


Date: Mon, 16 Feb 2004 23:49:29 -0800

As it happened in this case, we've come up with a likely suspect for the
problems. The support ticket about his site being down was almost as quick
to arrive as the monitor alerts. After several rounds of 100% CPU usage and
this customer doing something with a new management application there was a
strong correlation and I put the site into high isolation (and the customer
said he'd stop trying it.) Things were peaceful for a few hours. Then I
noticed that there were a number of ASP requests executing and a number of
ASP requests queued -- and they seemed stuck, not changing over time. About
that point, the customer sent another email that he had tried again and once
again (from his perspective) it appeared to have crashed.

In this case he is using an Access database with a connection string
"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=path_To_MDB_file." When I
looked at the folder where the MDB file was located, there was a LDB file
with a timestamp that matched when he indicated the site stopped. The
management application was located in a folder which did not have anonymous
access. He had to provide his username and password, same as if he had been
using FrontPage or FTP. He was using the information from the database to
write out other HTML files from what I understood of his goals. Along with
his activity on the site was a fair quantity of hits to a page which would
update some information in that same Access database.

Given the nature of Access database, it may be that there are just too many
concurrent requests. But I don't understand why the nature of the problem
shifted when I changed the isolation method from 100% CPU to hung processes.
If he has somehow deadlocked his own application, then when in medium
isolation does that mean his problems getting to the data are effecting the
many other clients on the server using other Access databases?

Updating MDAC may help, but it seems that there must be some reason that
this particular site triggered the problem. If it is just the volume of the
activity against the single Access database, then he will need to upgrade to
MS SQL server or find a different way to accomplish his goals. However, if
it is that an ASP coding bug has created a deadlock, then he needs to have
his developer find the bug and correct the logic.

What do I tell the customer? Any suggestions for solving this part of the
puzzle?

Oh, one other thing -- is there any way short of restarting the box to clear
this kind of mess? When the site was in the pool, I could unload one of the
pooled applications and within a minute or two, IIS was serving up ASP at a
normal CPU rate. (At least until the same conditions re-occurred.) I
wasn't able to get the high isolation variation to unload, and then I
couldn't get W3SVC to stop so IIS could be restarted.

 --
 Mary M. Rafferty
 mailto:mmr@vistagrande.com

"Pat [MSFT]" <patfilot@online.microsoft.com> wrote in message
news:e2miIUQ9DHA.3012@TK2MSFTNGP09.phx.gbl...
> 1) This looks like a bug in MSDART.dll (part of MDAC). Try installing the
> latest version (2.8). If that doesn't resolve it, you will likely need to
> open an incident w/MS-Support.
>
> 2) Since you make a lot of calls to Jet (Access), I would recommend that
you
> change your connection string to be OLEDB instead of ODBC b/c it performs
> much better. Also, you should be running compaction on the DB at least
once
> a week (improves perf as well).
>
> 3) You should also take a moment to install the Jet updates. This won't
> affect this problem, but may prevent others.
>
> Also, I would recommend disabling the ASP thread gating.
>
> Pat



Relevant Pages

  • Re: IIS5 Application Protection
    ... - straight asp ... - developed at high isolation ... > I have an application that uses .asp code and an access database which ... It was developed using an application protection of high. ...
    (microsoft.public.inetserver.iis.security)
  • Re: Only want to insert a record
    ... > scripting with a local MS Access database. ... When executed within an asp page ... which lets you do whatever your user permissions allow. ...
    (microsoft.public.data.ado)
  • Re: some advice please
    ... where it's possible to access database from VB. ... "Jeff Cochran" wrote in message ... > elements as others are selected (check a client side or DHTML group ... >>form needed because no variable to pass to ASP. ...
    (microsoft.public.inetserver.asp.db)
  • Re: some advice please
    ... where it's possible to access database from VB. ... "Jeff Cochran" wrote in message ... > elements as others are selected (check a client side or DHTML group ... >>form needed because no variable to pass to ASP. ...
    (microsoft.public.inetserver.asp.general)
  • Re: IIS 6.0 bottleneck when serving ASP pages
    ... upgrade to the free MSDE and get rid of access. ... means about 2/3 paralell requests to the access database. ... It consists of a mix of static html and .asp pages that mostly ...
    (microsoft.public.inetserver.iis)