1

I installed some Failed Request Tracing (in IIS 8.5 on Windows Server 2012) to try and analyze why some page loads take longer than others. We have a situation were sometimes a page will load in a few seconds, and then other times it will take 20 seconds to process. So I was hoping that I could use FRT to help me analyze those times when it takes a long time.

This question here is very similar, but it does show a little bit of time whereas mine doesn't. And my issue isn't related to transfer time (at least not between IIS and me).

This isn't just static HTML. These pages are dynamically generated by PHP, which in turn is making a call to a database to retrieve information. I was hoping to discern the differece between the time taken by IIS or PHP, but my log files all show 0 time take (or 0 duration) for each element of the FRT.

A bit of shotgunning on my part because I don't know exactly which section would report on what I am after, but here is my config:

Content = All 
Conditions:  Time = 2 (which is >2 if I read the help file correctly) 
Trace Providers:  ISAPI Extensions (verbose), WWW
Server (verbose)
  *  For WWW Server I have marked each of the 'Areas'

The PHP is coded such that it also is reporting the amount of time it takes. That is telling me it is taking 6-8 seconds in certain conditions. (This is a test file designed for this purpose, so it does 50 queries, reporting the entire time back.) Sometimes, though, there is a single query in that run that takes 15-20 seconds to process. While the FRT log does log a trace it will say that the time taken was only 2.532s (as an example), even though the PHP (and wall clock) say that it was 6-8 seconds. But again, looking into the details of the FRT log it only shows 0 for the time taken, regardless of how long it really took.

What I would really like to see is how long a PHP call is taking; IIS is having to wait for that to finish before it returns results, so its seems like that would be logged...

Thanks, Justin

Community
  • 1
  • 1
Cronk
  • 453
  • 1
  • 6
  • 16

1 Answers1

0

When you put a time limit of 2 on FRT the trace stops at the stage where 2 seconds has been reached unfortunately.

There are a couple of ways around it. If it's on a machine where you can limit the traffic, like a development or test rig, then you could set it to trace results of '200' for the status code. It'll log all the successful (but long running) requests.

If that's not possible, then setting the trace nearer to the problem timescale would help. So in your case set it to 6 seconds and you'll see all the stages of the process up to the one that runs over

Dave
  • 474
  • 3
  • 17