Heroku |如何阅读路由器日志

问题描述:

所以在雪松平台长相我典型的路由器日志可能看起来像Heroku |如何阅读路由器日志

2012-03-22T18:26:34+00:00 heroku[router]: GET [my_url] dyno=web.9 queue=0 wait=0ms service=228ms status=302 bytes=212 
2012-03-22T18:26:36+00:00 heroku[router]: GET [my_url] dyno=web.7 queue=0 wait=0ms service=23ms status=200 bytes=360 
2012-03-22T18:26:45+00:00 heroku[router]: GET [my_url] dyno=web.30 queue=0 wait=0ms service=348ms status=201 bytes=1 

我想确认我的条款queuewaitservice

我最初的想法的理解其中:

  • 队列:队列的名称if使用background_job或resque
  • 等待:多久请求路由器等(请在New Relic的队列)
  • 服务:它实际上需要多长时间你的应用程序来处理请求(不包括queing时间)

但我等待在我的日志是总是 0毫秒。即使我有重要的积压。

我的定义是否错误?

+0

你说你的等待时间总是0ms,如果队列也是0,你怎么知道你在这之外有积压? – 2012-03-22 19:19:22

+0

因此,例如,服务我的crossdomain.xml - 一个静态文件,在10ms内低负载响应。在高负载情况下,可以达到6000ms +直到30秒超时。我期望大部分时间都在排队等待。 – Jonathan 2012-03-22 19:55:09

+0

另外,当我添加更多的dynos时,服务时间会下降,反之亦然 – Jonathan 2012-03-22 20:05:52

  • 队列:等待由测功机处理的请求数。
  • 等待:此请求在处理之前处于队列中的时间长度。
  • 服务:请求的处理时间。

您的总响应时间将是等待+服务。

+0

您能否更详细地解释“服务”的含义?这是否意味着,在发送响应之前需要通过任何脚本运行的时间,还是一些内部计时器与代码没有任何关系? – 2012-07-17 16:24:34

+0

“在发送回复之前运行任何脚本所花的时间” - 这个。 – 2012-07-25 09:50:27

+0

作为一个警告,“服务”时间似乎考虑到网络时间。这很可能类似于IIS日志中的“花费时间”。 http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/676400bc-8969-4aa7-851a-9319490a9bbb.mspx?mfr=true 我基于此比较一些长期运行的项目(〜 20+秒),并与新文物的“实际用户监测”进行比较,表明将近100%的时间为“网络”时间。 – Jody 2012-10-04 16:58:07