How to Collect Data to Troubleshoot Slow IIS 7 Web Page Performance

 

 

UNFINISHED… sorry.

 

In this scenario, suppose that if a webpage is browsed and it should take 2 to 10 seconds to fully serve from IIS 7 and be rendered in the client browser but that it is taking 30-50 seconds instead.

 

As an overview, we’re going to make sure that the website has “time taken” set first. 

Next we’ll set up a performance monitor capture on the server. 

We’ll set up Failed Request tracing.

Then we’ll reproduce the problem one time while running Netmon and while making one or two memory dumps of the IIS process. 

 

·         IIS logs (with Time Taken)

·         Performance Monitor

·         FREB traces

·         Netmon

·         Taskmanager Userdumps

 

 

 

First let’s confirm that the website we’re going to be focusing our troubleshooting has “time taken” set in its IIS log.  (It probably will)

 

 

 

Description: G:\CHAUN\vIISual.net\vIISual.net-PUBLISHED\Debug\IIS7\slowPerf\clip_image001.png

 

 

 

Description: G:\CHAUN\vIISual.net\vIISual.net-PUBLISHED\Debug\IIS7\slowPerf\clip_image002.png

 

 

 

Open Performance Monitor and create a new Data Collector Set

 

Description: G:\CHAUN\vIISual.net\vIISual.net-PUBLISHED\Debug\IIS7\slowPerf\clip_image003.png

 

 

 

Description: G:\CHAUN\vIISual.net\vIISual.net-PUBLISHED\Debug\IIS7\slowPerf\clip_image004.png

 

Description: G:\CHAUN\vIISual.net\vIISual.net-PUBLISHED\Debug\IIS7\slowPerf\clip_image005.png

 

Description: G:\CHAUN\vIISual.net\vIISual.net-PUBLISHED\Debug\IIS7\slowPerf\clip_image006.png

 

 

Description: G:\CHAUN\vIISual.net\vIISual.net-PUBLISHED\Debug\IIS7\slowPerf\clip_image007.png

 

 

Description: G:\CHAUN\vIISual.net\vIISual.net-PUBLISHED\Debug\IIS7\slowPerf\clip_image008.png

 

Add counters for everything beginning with .NET (unless you are sure that your server is not running any asp.net web applications)

 

Add counters for  APP_POOL_WAS, Active Server Pages, everything beginning with ASP.NET

 

Description: G:\CHAUN\vIISual.net\vIISual.net-PUBLISHED\Debug\IIS7\slowPerf\clip_image009.png

 

 

Add counters for HTTP Service, HTTP Service Request Quees, HTTP Service URL Groups, Internet Information Services Global, Memory, Process, Processor, Thread, W3SVC W3WP, WAS_W3WP, Web Service,

 

Description: G:\CHAUN\vIISual.net\vIISual.net-PUBLISHED\Debug\IIS7\slowPerf\clip_image010.png

 

Make sure that the new perfmon capture is started. . .

 

Description: G:\CHAUN\vIISual.net\vIISual.net-PUBLISHED\Debug\IIS7\slowPerf\clip_image011.png

 

 

 

 

 

Open a command prompt, and enter this command:

 

%windir%\system32\inetsrv\appcmd.exe list wp

 

This will let you know which pid number matches each application pool.

 

Description: G:\CHAUN\vIISual.net\vIISual.net-PUBLISHED\Debug\IIS7\slowPerf\clip_image012.png

 

 

Open Taskmanager and move to the Processes Tab

 

Expand the View Menu and select “Select Columns…”

 

Description: G:\CHAUN\vIISual.net\vIISual.net-PUBLISHED\Debug\IIS7\slowPerf\clip_image013.png

 

Place a checkmark beside PID (Process Identifier)

 

Description: G:\CHAUN\vIISual.net\vIISual.net-PUBLISHED\Debug\IIS7\slowPerf\clip_image014.png

 

Sort processes by Image name and focus on the w3wp.exe processes please.

 

Description: G:\CHAUN\vIISual.net\vIISual.net-PUBLISHED\Debug\IIS7\slowPerf\clip_image015.png

 

You’ll need to know exactly which w3wp.exe to focus on because we need to make two memory dumps of that specific w3wp.exe while you’re reproducing the problem.   Here is how you’ll make the dumps.  (But don’t do it yet.)

 

Description: G:\CHAUN\vIISual.net\vIISual.net-PUBLISHED\Debug\IIS7\slowPerf\clip_image016.png

 

 

After you know which w3wp.exe you’ll need to create dump files on, start Netmon.

 

The best way to run Netmon is to get one capture on the web server and get a second capture at the same time on the client.   That way we can see both sides of the conversation between client and server. 

 

When Netmon is running, browse to the page that takes 30-50 seconds to serve.   You can open up three tabs in your browser and browse three times.

 

At second 20, please make your first hang dump of the w3wp.exe in task manager.  (“Create dump file”)

 

At second 40, please make your second hang dump of the same w3wp.exe.

 

If you reach second 50, feel free to make a third hang dump of the same w3wp.exe.   We need at least two dumps.   But three is even better if you can make that happen.

 

Please tell me the IP address of the client and of the server.  I’ll need that information for when I’m looking at the IIS log and the Netmon traces.

 

Please also tell me the name of the web page you were browsing to in order to reproduce the problem.  Please only use one single page.  You can browse to it several times in several tabs, but please make sure we troubleshoot with just one single web page.

 

After the slow page serves, stop the Netmon captures and save them. 

 

Open a case with a support team at Microsoft

 

Zip the two or three memory dumps you made.

 

Stop the perfmon capture and zip the blg file it made.

 

Also zip and upload the IIS log.