Re: iis6 w3wp.exe thread count gets high and wp becomes sluggish

From: David Wang [Msft] (someone_at_online.microsoft.com)
Date: 03/26/05


Date: Fri, 25 Mar 2005 23:17:00 -0800

The error you get from !iisdbg.clientconns is by-design. You do not have the
appropriate symbol file to use this functionality.

What are you storing in the Application object? Any VB objects or other
objects which do not have the right apartment model and threading
declared -- which forces serialized access and results in high lock
contention when under load and can result in sluggish performance as
everything gets piled up behind the lock.

Why does this behavior exist? Well, IIS is a high performance web server
which requires code that understands concurrency to take maximum advantage.
Unfortunately, most users do not know how to write this sort of code
correctly and probably never will, but IIS still has to work in these
adverse conditions... so IIS does the safest thing to try and compromise (at
a performance penalty, of course -- there is no such thing as a free lunch).
The alternative to not serializing is to have data corruption and immediate
crashes, so we chose the lesser of two evils (the best choice being users
that write correct code).

-- 
//David
IIS
http://blogs.msdn.com/David.Wang
This posting is provided "AS IS" with no warranties, and confers no rights.
//
"Jay" <jay.oleary@gmail.com> wrote in message
news:1111803106.079004.94790@z14g2000cwz.googlegroups.com...
Hi:
I have a website that has 6 app pools.  There is one app pool that will
occasionally show a high # of threads during heavy load (20 rps) and
eventually become so sluggish that only a reset will fix it.
The thread below (187c.1db8) seems to be the culprit.  It seems to be
stuck in the Application object but I'm not sure.
Can anyone offer any suggestions?
I also get this error when trying to do !iisdbg.clientconns from windbg
but other iisdbg commands work fine;
Thanks
====iisdbg.clientconns error
*************************************************************************
***
***
***
***
***    Your debugger is not using the correct symbols
***
***
***
***    In order for this command to work properly, your symbol path
***
***    must point to .pdb files that have full type information.
***
***
***
***    Certain .pdb files (such as the public OS symbols) do not
***
***    contain the required information.  Contact the group that
***
***    provided you with these symbols if you need this command to
***
***    work.
***
***
***
***    Type referenced: w3dt!UL_NATIVE_REQUEST
***
***
***
*************************************************************************
====locks
0:000> !locks
CritSec +2661f0c at 02661F0C
LockCount          0
RecursionCount     1
OwningThread       1db8
EntryCount         bc3a
ContentionCount    bc39
*** Locked
===== suspect thread:
  23  Id: 187c.1db8 Suspend: 1 Teb: bffa2000 Unfrozen
ChildEBP RetAddr  Args to Child
0336ead8 709f1aa3 0336eb1c 00000024 709f1af8
asp!CHashTable::FindElem+0x67 (FPO: [Non-Fpo])
0336eae4 709f1af8 0336eb1c 00000024 0336eb0c
asp!CComponentCollection::FindComponentPropertyByName+0x13 (FPO:
[3,0,0])
0336eb00 709f190e 0336eb1c 00000000 0336ed2c
asp!CComponentCollection::GetProperty+0x28 (FPO: [Non-Fpo])
0336eb78 770f6109 02661e90 0951dae4 0336ebdc asp!CAppln::get_Value+0x84
(FPO: [Non-Fpo])
0336eb98 7713f5ff 02661e90 0000001c 00000004
oleaut32!DispCallFunc+0x15d
0336ec28 709f19a8 000e2c3c 02661e90 00000000
oleaut32!CTypeInfo2::Invoke+0x232 (FPO: [Non-Fpo])
0336ec50 7348b427 02661e90 00000000 73479f4c
asp!CDispatchImpl<IApplicationObject>::Invoke+0x53 (FPO: [Non-Fpo])
0336eca4 7347f39c 052b0e78 02661e90 00000000
vbscript!CatchIDispatchInvoke+0x46 (FPO: [Non-Fpo])
0336ecf0 7346368c 044c2ca8 02661e90 00000000
vbscript!IDispatchInvoke+0x95 (FPO: [Non-Fpo])
0336ee04 73474347 044c2ca8 02661e90 00000000
vbscript!InvokeDispatch+0x138 (FPO: [Non-Fpo])
0336f0e0 73463c33 0336f470 00000002 044c2ca8
vbscript!CScriptRuntime::Run+0x1c27 (FPO: [Non-Fpo])
0336f1e4 7346c57f 0336f470 00000002 02300320
vbscript!CScriptEntryPoint::Call+0x65 (FPO: [Non-Fpo])
0336f4b8 73463c33 0336f848 00000002 044c2ca8
vbscript!CScriptRuntime::Run+0x20ce (FPO: [Non-Fpo])
0336f5bc 7346c57f 0336f848 00000002 023003b0
vbscript!CScriptEntryPoint::Call+0x65 (FPO: [Non-Fpo])
0336f890 73463c33 00000000 00000000 044c2ca8
vbscript!CScriptRuntime::Run+0x20ce (FPO: [Non-Fpo])
0336f994 73463d42 00000000 00000000 00000000
vbscript!CScriptEntryPoint::Call+0x65 (FPO: [Non-Fpo])
0336f9f8 73464081 08be1c50 00000000 00000000
vbscript!CSession::Execute+0xb6 (FPO: [Non-Fpo])
0336fa48 734640ee 00000000 00000000 77e4198c
vbscript!COleScript::ExecutePendingScripts+0x14a (FPO: [Non-Fpo])
0336fa64 709e5e87 02b22bb0 02b22bb0 0262ab70
vbscript!COleScript::SetScriptState+0x14e (FPO: [Non-Fpo])
0336fa90 709e5ee1 00000000 77e4198c 0262ab70
asp!CActiveScriptEngine::TryCall+0x17 (FPO: [Non-Fpo])
0336facc 709e5f21 00000000 77e4198c 0292bdb8
asp!CActiveScriptEngine::Call+0x31 (FPO: [Non-Fpo])
0336fae0 709e6227 0336fb3c 00000000 00000000
asp!CallScriptFunctionOfEngine+0x21 (FPO: [4,0,0])
0336fb18 709e6393 02e23d78 00000000 0336fb84 asp!ExecuteRequest+0x138
(FPO: [Non-Fpo])
0336fb60 709e5573 02e23d78 0292bdb8 0336fb84 asp!Execute+0x16a (FPO:
[Non-Fpo])
0336fbb0 709e5726 00000000 00000000 0bbbbdd0
asp!CHitObj::ViperAsyncCallback+0x3ec (FPO: [Non-Fpo])
0336fbd0 75633107 02f65938 097ae680 0336fd90
asp!CViperAsyncRequest::OnCall+0x8c (FPO: [Non-Fpo])
WARNING: Stack unwind information not available. Following frames may
be wrong.
0336fbec 77204ea7 0bbbbdd0 0336fcc0 00000000
comsvcs!CoCreateActivity+0x4b41
0336fc38 772055da 00000000 000e0bc4 756330d7
ole32!CoQueryAuthenticationServices+0x1af4
0336fd38 00000010 00000000 00000000 00000004
ole32!CoQueryAuthenticationServices+0x2227


Relevant Pages

  • Re: HDD driver low memory condition
    ... the newsgroups are staffed weekdays by Microsoft Support professionals to ... be typed in a command prompt. ... To your IIS settings issue, do you have the IIS matabase backup file? ... newsgroups so that they can be resolved in an efficient and timely manner. ...
    (microsoft.public.windows.server.sbs)
  • Re: IIS-bug - CGI-applikation terminates when loading standard DLL
    ... Hit refresh and the page will load fine second time round. ... not executed with the CreateProcessAsUserAPI call by IIS anymore. ... Here is a description of how to set the metabase property which control ... If the command is successful, it will tell you it updated the setting, ...
    (microsoft.public.inetserver.iis)
  • RE: IIS Problems???? Companyweb and Default Web Sites will not St
    ... Every name in IIS must be ... you must have the Microsoft Windows Support ... To determine whether any IP addresses are listed, open a command prompt, ... Companyweb and Default Web Sites will not Start ...
    (microsoft.public.windows.server.sbs)
  • Re: Threads and Events
    ... The "easy" way to handle this is NOT TO use threading! ... If you do not enable OnComm, there is no interaction between your polling ... If you download my CFSerialIO example, you will find code in a command ... driven communications in my book. ...
    (microsoft.public.dotnet.framework.compactframework)
  • Re: PHP cannot execute programs
    ... CalculateProject.exe runs fine from the command line. ... applications in IIS and at the file level. ... > There seems to be some change in the permissions, ... > access the assembly is now denied access. ...
    (microsoft.public.inetserver.iis)