How to use the Debug Diagnostics Tool to troubleshoot high CPU usage by a process in IIS

Article translations Article translations
Article ID: 919791 - View products that this article applies to.
Expand all | Collapse all

On This Page

SUMMARY

This article describes how to use the Debug Diagnostics Tool v1.2 to troubleshoot high CPU usage by a process in Microsoft Internet Information Services (IIS).

INTRODUCTION

High CPU usage by a process in IIS occurs when an IIS process uses 80 percent or more of the available CPU cycles for a constant time interval. Examples of an IIS process are Inetinfo.exe, Dllhost.exe, and W3wp.exe. When high CPU usage by an IIS process occurs, you experience one or more of the following symptoms:
  • A Web page does not load correctly. For example, the Web page is blank or does not respond.
  • You experience slow performance on a server that is running IIS. For example, the progress indicator moves very slowly when you try to view a Web page.
This article discusses how to install and then configure the Debug Diagnostics Tool to troubleshoot high CPU usage by an IIS process.

MORE INFORMATION

If an IIS process uses a high percentage of available CPU cycles, we recommend that you create a full memory dump file of the IIS process when IIS processes client requests. You can use the Debug Diagnostics Tool to capture and to analyze memory dump files when IIS processes client requests.


Step 1: Download and then install the Debug Diagnostics Tool v1.2

To download and then install the Debug Diagnostics Tool, visit the following Microsoft Web site:
http://www.microsoft.com/download/en/details.aspx?id=26798

Step 2: Configure Performance Monitor logging

To configure Performance Monitor logging, follow these steps:
  1. Click Start, click Run, type the path of the Debug Diagnostics Tool, and then click OK.

    Note By default, the Debug Diagnostics Tool is located in the following folder:
    C:\Program Files\DebugDiag
  2. On the Tools menu, click Options and Settings.
  3. On the Performance Log tab, click Enable Performance Counter Data Logging, and then click OK.

    Note The value in the Data Sampling Interval box depends on when the high CPU usage issue occurs. The size of the log grows as the data is gathered. Contact a Microsoft Support Professional for information about how to configure the value in the Data Sampling Interval box.

Step 3: Disable Debug Exception Catching

Note If you are configuring the Debug Diagnostics Tool to use the tool with IIS 6.0 or higher, go to "Step 4: Create a dump file."

If you are configuring the Debug Diagnostics Tool to use the tool with IIS 5.1 or with IIS 5.0, disable Debug Exception Catching. To do this, follow these steps:
  1. Click Start, click Run, type Inetmgr.exe, and then click OK.
  2. Right-click the computer that you want to configure, and then click Properties.
  3. In the Master Properties list, click WWW Service, and then click Edit.
  4. On the Home Directory tab, click Configuration.
  5. On the Process Options tab, click to clear the Enable debug exception catching check box, and then click OK.

Step 4: Create a dump file

To create a dump file, use one of the following methods.

Method 1: Create a hang rule

To create a hang rule, follow these steps:
  1. Click Start, click Run, type the path of the Debug Diagnostics Tool, and then click OK.

    Note By default, the Debug Diagnostics Tool is located in the following folder:
    C:\Program Files\DebugDiag
  2. On the Rules tab, click Add Rule.
  3. Click Performance, and then HTTP Response Times, and then click Next.
  4. Click Add URL, select either the ETW or Ping options, type the URL of the Web site in which you experience the issue, set the appropriate timeout and Ping times, and then click OK. Then, click Yes to test the URL.
  5. Click OK, and then click Next.
  6. Click Add Dump Target.
  7. In the Target Type list, click the target type that you want, click OK, and then click Next.
  8. Type a name for the rule, type a path for the user dump file location, and then click Next.
  9. Click Activate the rule now, and then click Finish.

    On the Rules tab, notice that the rule is Active in the Status column.

Method 2: Create an IIS Hang Dump file manually

To create an IIS Hang Dump file manually, follow these steps:
  1. Click Start, click Run, type the path of the Debug Diagnostics Tool, and then click OK.

    Note By default, the Debug Diagnostics Tool is located in the following folder:
    C:\Program Files\DebugDiag
  2. On the Tools menu, click Create IIS/COM+ Hang Dump.

Method 3: Create a user dump file for a process in the Debug Diagnostics Tool

To create a user dump file for a process, follow these steps:
  1. Click Start, click Run, type the path of the Debug Diagnostics Tool, and then click OK.

    Note By default, the Debug Diagnostics Tool is located in the following folder:
    C:\Program Files\DebugDiag
  2. On the Processes tab, right-click the process that you want to troubleshoot, and then click Create Full Userdump.

Step 5: Disable Performance Monitor logging

Approximately two minutes after the user dump file capture process is finished, disable Performance Monitor logging. To do this, follow these steps:
  1. Click Start, click Run, type the path of the Debug Diagnostics Tool, and then click OK.

    Note By default, the Debug Diagnostics Tool is located in the following folder:
    C:\Program Files\DebugDiag
  2. On the Tools menu, click Options and Settings.
  3. On the Performance Log tab, click Disable Performance Counter Data Logging.

Step 6: Analyze the dump file

To analyze the dump file, follow these steps:
  1. Click Start, click Run, type the path of the Debug Diagnostics Tool, and then click OK.

    Note By default, the Debug Diagnostics Tool is located in the following folder:
    C:\Program Files\DebugDiag
  2. On the Advanced Analysis tab, click Add Data Files.
  3. Locate and then click the dump file that you want to analyze. Click Open.
  4. On the Advanced Analysis tab, click Crash/Hang Analyzers, and then click Start Analysis.
  5. Review the report that is displayed in Microsoft Internet Explorer. A copy of this report is also stored in the following folder:
    C:\Program Files\DebugDiag\Reports
Note If you want to troubleshoot a custom .dll file, include the custom .pdb files. To include the custom .pdb files, click Tools, click Options and Settings, click Folder and Search Paths, type the path in the Symbol Search Path for Debugging box, and then click OK.

REFERENCES

For more information about how to use IIS, visit the following Microsoft Web site:
http://www.iis.net
To view Microsoft Developer Network (MSDN) Web casts about how to handle issues with IIS, visit the following MSDN Web sites:
How to troubleshoot situations where IIS does not respond
http://go.microsoft.com/fwlink/?LinkId=40968
How to diagnose memory leaks in IIS
http://go.microsoft.com/fwlink/?LinkId=40969
How to diagnose situations where IIS closes unexpectedly
http://go.microsoft.com/fwlink/?LinkId=40967
For more information about how to use the Debug Diagnostics tool to troubleshoot issues with an IIS process, click the following article numbers to view the articles in the Microsoft Knowledge Base:
919792 How to use the Debug Diagnostics tool to troubleshoot a process that has stopped responding in IIS
919790 How to use the IIS Debug Diagnostics tool to troubleshoot a memory leak in an IIS process
919789 How to use the Debug Diagnostics tool to troubleshoot an IIS process that stops unexpectedly

Properties

Article ID: 919791 - Last Review: November 18, 2011 - Revision: 3.0
APPLIES TO
  • Microsoft Internet Information Services 5.1
  • Microsoft Internet Information Services 6.0
  • Microsoft Internet Information Services 7.0
  • Microsoft Internet Information Services 7.5
Keywords: 
kbhowto KB919791

Give Feedback

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com