On machines running IIS5 and IIS5.1, these are the Inetinfo.exe, DLLHost.exe and/or ASPNET_WP.exe processes. On machines running IIS 6 or 7, this is the w3wp.exe process.
The following steps will allow us to get log files of the processes hosting the IIS or ASP.NET applications, as well as obtain the thread ID that is using the CPU that will directly correspond to the log file. Please let us know if you have any questions about using this process.
A. Download DebugDiag: ======================
B. Create a Performance Monitor log: ====================================
If the application is an ASP.net application, select the following from the Performance Object dropdown, being sure to Add each one as you select it:
For the ASP.NET counters, select the version that you are wanting to monitor. Ex. For 1.1 framework, select ASP.NET v1.1.4322 and ASP.NET Applications v1.1.4322.
IMPORTANT: The Data Sampling Interval and time to start monitoring is subjective to when the CPU spike reproduces. Due to the log size, monitor the server to gather the needed data while not overwhelming the server.
Note: For more information on Performance monitor, see http://support.microsoft.com/?id=248345
A. Let the process run ====================== Now let the server run for a few minutes to document the environment in which the high CPU/hang is occurring in.
B. Capture the memory Dumps ===========================
Repeat Step 2 every 1 - 2 minutes until you have 3 sets of memory dumps. Make sure the previous memory dumps completed before continuing to capture the next set of memory dumps. The multiple memory dumps will allow us to see if the process is progressing during the hang/high CPU symptoms or whether the process is actually performing work.
Files will be created in the following path by default: C:\Program Files\IIS Resources\DebugDiag\Logs\Misc
C. Stop the Performance Monitor log ===================================
In Performance Monitor: