I don't know why I always wait so long. I guess I feel that the problem will go away sooner or later. Or, maybe I'll get lucky and find the solution myself. Well, neither of those things came to light. One of our Web servers was exhibiting high CPU usage in inetinfo.exe and dllhost.exe; they each shared about equally in the 100% usage. Some weeks everything was fine but some weeks were horrible. Really, however, with the sensing programs we have in place to analyze the servers there really wasn't much downtime as opposed to keeping some of our staff awake at night.
Anyway, to make a long story short, and an otherwise boring article interesting we placed a call to Microsoft. Those guys are great. They are so professional and knowledgeable. Definitely, money well spent. They isolate the problem very fast and are open to all requests and suggestions from our staff.
We installed and ran Microsoft's new IISDump tool on the offending server. It installs an ISAPI filter in IIS and watches for long running threads. We were able to set the length of time on the threads (via a configurable ini file) and tell IISDump what to do in case of a match. Of course we ran the tool that was included with IISDump to dump the entire inetinfo and dllhosts processes to a file. The files are "cab'ed" up and sent off to Microsoft. In a day they had the answer.
One of our shared hosting customers had a submit form that was acting up. We were able to actually run his form, submitting a rather large psd file to it, and instantly inetinfo.exe and dllhost.exe were sucking up all the CPU time. Stopped the site and everything was fine. Easy enough problem but finding the site on a shared hosting server is almost impossible without being able to read and analyze those dump files.
Good NEWS: Microsoft informed me that they were releasing a new tool - soon - that would allow the end user to better read the dumps and isolate problem sites in IIS.
ACTION: IIS is using 100% CPU utilization causing his server to hang. RESULT: 100% CPU utilization occurs and finally the server will hang. Rebooting resolves the problem. CAUSE: www.cfdomain.com site causes the problem. There were 2 active client connections when these dumps were taken. Active CLIENT_CONN list head (w3svc!listConnections) : 65f47548 ============================= Item# 2, CLIENT_CONN = 294C750 Client IP/Port: 67.161.205.213:1123 Server IP/Port: 216.219.241.33:80 [Not Secure/SSL] Host Header: www.golfgrips.com Connection state: CCS_PROCESSING_CLIENT_REQ | Request state: HTR_DOVERB Requested URL = GET /how_to_regrip.cfm?NAV__ID=HOW_TO_REGRIP HTTP/1.1 Request active 22047 ms (0 days: 00:00:22.47) Executing in process id 3276 ============================= Item# 51, CLIENT_CONN = 2909720 Client IP/Port: 216.175.110.38:3560 Server IP/Port: 216.219.241.33:80 [Not Secure/SSL] Host Header: www.cfdomain.com Connection state: CCS_PROCESSING_CLIENT_REQ | Request state: HTR_DOVERB Requested URL = POST /feedback/submit.cfm HTTP/1.1 Request active 1021469 ms (0 days: 00:17:01.469) Executing in process id 3276 Both are running for an about 17 minutes in IIS OOP process (3276)
After the client put a stop to the code the server has been running fine ever since.
There is a tool at a site I found a few years ago that may have helped us. It's called IISTracer and it can be found at: http://www.pstruh.cz/help/iistrace/iis-monitor.asp I have installed the demo on a development server and it looked very useful. I had then decided to purchase the product. I always e-mail the company first to see what kind of response time I can expect if I do ever require support. These guys have never, ever returned an e-mail to me. I have emailed a few different POP addresses including info and even the author himself. I would spend the money but am a little leery when no one responds.
So much for that.
Hope this small article helps anyone with their high CPU problems.
Lesson learned: I am convinced IIS will run problem free if there are no problems contained within it.
John Cesta
If you like this article or maybe had a similar experience and would like to share it with other readers then feel free to:
Simply fill in YOUR e-mail address, your name and your comment. Click the SEND button.After submitting your comment, you will be transported back to the article you commented on!
John Cesta is a contract programmer. John's current project is designer and lead developer of the automated hosting software at bestcfhosting.com, a ColdFusion MX hosting company. John is currently working on commercializing his programs and offering them to the IIS community at serverautomationtools.com

