IIS 8.5失败的请求跟踪报告0所用时间


IIS 8.5 Failed Request Tracing reports 0 time taken

我安装了一些失败的请求跟踪(在Windows Server 2012上的IIS 8.5中),试图分析为什么某些页面加载比其他页面加载耗时更长。我们有一种情况,有时页面会在几秒钟内加载,而其他时候则需要20秒才能处理。所以我希望我可以使用FRT来帮助我分析那些需要很长时间的时间。

这里的这个问题很相似,但它确实显示了一点时间,而我的问题则没有。我的问题与传输时间无关(至少与IIS和我之间的传输时间无关)。

这不仅仅是静态HTML。这些页面是由PHP动态生成的,PHP反过来调用数据库来检索信息。我希望能辨别IIS或PHP花费的时间之间的差异,但我的日志文件都显示FRT的每个元素花费的时间为0(或持续时间为0)。

我有点挑剔,因为我不知道具体哪个部分会报道我想要的东西,但这是我的配置:

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'

PHP是这样编码的,它也报告它所花费的时间。这告诉我在某些条件下需要6-8秒。(这是一个为此目的设计的测试文件,因此它会执行50个查询,并报告整个时间。)不过,有时,运行中只有一个查询需要15-20秒才能处理。虽然FRT日志确实记录了一个跟踪,但它会说所花费的时间只有2.532秒(例如),尽管PHP(和挂钟)说是6-8秒。但是,再次查看FRT日志的详细信息,它只显示所花费的时间为0,而不管实际花费了多长时间。

我真正想知道的是PHP调用需要多长时间;IIS在返回结果之前必须等待它完成,所以它似乎会被记录。。。

谢谢,Justin

当您在FRT上设置2的时间限制时,跟踪会在不幸达到2秒的阶段停止。

有几种方法可以解决这个问题。如果它在一台可以限制流量的机器上,比如开发或测试设备,那么你可以将其设置为跟踪状态代码的"200"结果。它将记录所有成功(但长期运行)的请求。

如果这不可能,那么将跟踪设置为更接近问题时间尺度将有所帮助。因此,在您的情况下,将其设置为6秒,您将看到流程的所有阶段,直到在上运行的阶段