“app server”时间与newrelic中的“浏览器时间”和“交易时间”有什么关系?

时间:2015-05-19 13:34:55

标签: php performance web-applications profiling newrelic

我正在使用NewRelic监视一个PHP应用程序,我对我的应用程序概述中显示的一些数字感到非常困惑。

我的应用程序包含一个PHP webapp,它一方面向Web浏览器提供页面(显然是:),并在另一方面向Java后端执行请求:

浏览器< - > PHP Webapp - > Java后端

我知道一些事实,一些Java后端请求可能需要15秒才能完成,从浏览器的角度来看,这需要花费很多时间才能完成Web应用程序。

在newrelic(APM>我的应用程序>监控>概述)的概述面板中,它表示我的“app server”时间平均为1560毫秒,而我的“浏览器时间”为5.63秒(I已启用浏览器监控)。此外,“交易”部分显示完成的交易最多需要11.6秒。

那么....所有这些不同的时间测量如何在它们之间相关?总结一下,我有:

  • PHP“app server”时间:1560毫秒
  • PHP app“浏览器时间”:5.63秒
  • “交易”时间:11.6秒

我怎样才能理解这些数字?我希望“浏览器时间”是最高的(因为它包括所有其他的,PHP和事务处理)。他们是否以某种方式加起来?其中一些是其他人的崩溃吗?

注意:我知道在newrelic中,所有关于平均时间相对于被分析的时间窗口,但是,这对我来说没有意义。

谢谢!

1 个答案:

答案 0 :(得分:4)

好吧,我终于想通了:) 我在这里缺少的关键概念是“百分位数”。让我解释一下。

在我的问题中,我提到我的平均响应时间为1560毫秒,这似乎没有意义,因为我们的后端总是需要处理大约15秒来产生响应。以下图片是我在webapp的“概述”中获得的内容。

web transactions average times

正如您所看到的,平均时间响应似乎并不那么糟糕。但是,我也看到交易最多需要15秒。

下面,如果展开“Web Transactions响应时间”选择器,并选择百分号(“%”),您将获得“Percentiles”图。我的如下:

web transaction percentiles

在这张新图表中:

  • 绿线表示平均响应时间,它对应于第一张图的绿色区域。在这里,我们看到它实际上表明交易平均需要不到2秒才能完成。到目前为止一切顺利。
  • orange-ish行,对应于“95%”。这是了解所有这些数字如何结合在一起的关键。这个“95%”对应于您的请求的“第95 percentile”。这意味着95%的请求所花费的时间少于此时间。但当然这也意味着你的请求中有5%的要求超过了!
  • 蓝线,对应于您的请求的“99%”或“第99百分位数”,这意味着99%的请求所占用的费用低于此行,但同样,1%需要更多。
  • 红线,对应于“中位数”,如果事实是“50%”或“第50百分位数”的同义词。在这一点上你可以想象这是什么:50%的请求花费的时间少于这个时间,而另外50%的请求花费更多(因此名称为“中位数”)。请注意,有趣的是,此度量与“平均”概念有很大不同,因为平均值总计所有时间并除以事务总数,因此隐藏在样本的高容量中,那些处于极端情况下的事务。采样时间。

现在,一切都开始变得有意义了。我的平均请求实际上不超过2秒。但是我有很多请求非常快(红线以下),那些花费15秒的令人难以置信的时间的平均值并不明显。只有当您查看采样请求的长尾时,这些才是明显的。第95百分位和第99百分位。

要进行包装,可以通过选择图表中的“直方图”选项进行确认。我的如下:

web transactions histogram

请注意,绝大多数请求都需要200毫秒,但我们还有8.29%的事务需要超过7秒完成(如果我们可以滚动到直方图的右侧,我们会发现实际上是请求由于我们之前做过百分位数分析,所以在最后5%和1%中持续超过15秒。

(本文指出了正确的方向:https://blog.newrelic.com/2013/10/23/histograms-percentiles-new-relic-style/

这让我迷失了很长时间,希望它可以帮助别人!