Heroku上的奇怪请求超时

问题描述:

首先,我对Heroku上的H12超时非常熟悉。我使用Delayed Job进行长时间运行的任务等。Heroku上的奇怪请求超时

我看到的问题是在本地需要2秒的rails 3请求在Heroku上超时。我已经为整个控制器操作添加了日志记录,并且在本地和heroku上执行代码约需2秒钟。从Heroku的

例子:

2011-09-28T20:06:43+00:00 app[web.2]: Started POST "/xyz" for 69.181.51.78 at Wed Sep 28 13:06:43 -0700 2011 
2011-09-28T20:07:12+00:00 app[web.2]: ***saved in 0.027939 seconds 
2011-09-28T20:07:12+00:00 app[web.2]: ***split in 0.006164 seconds 
2011-09-28T20:07:12+00:00 app[web.2]: ***reject in 0.017268 seconds 
2011-09-28T20:07:12+00:00 app[web.2]: ***validate in 0.029043 seconds 
2011-09-28T20:07:13+00:00 heroku[router]: Error H12 (Request timeout) -> POST xyz.com/xyz dyno=web.2 queue= wait= service=30000ms status=503 bytes=0 
2011-09-28T20:07:13+00:00 app[web.2]: ***duped in 0.561905 seconds 
2011-09-28T20:07:13+00:00 app[web.2]: ***dropped cats in 0.005318 seconds 
2011-09-28T20:07:14+00:00 app[web.2]: ***added in 0.148055 seconds 
2011-09-28T20:07:14+00:00 app[web.2]: ***saved in 0.245283 seconds 
2011-09-28T20:07:14+00:00 app[web.2]: ***handled in 1.721555 seconds 

你可以从最后一行看到,根据记录整个过程只需1.7秒,但这些日志行的都出现了29秒(我们”重新使用Rack.Timeout并将其设置为29秒)

该请求是一个相当大的POST大约72K,并且*** dup日志行我在复制大约相同大小的散列。是否有可能我打Heroku内存限制,并将显示为H12超时?

原来这是Heroku上的一个暂时的问题,持续了几天。它解决了它自己。

我会尝试安装New Relic add-ondocs here) - 它支持监视运行Rails(ref)的dynos上的内存使用情况。看看是否给你任何有关你使用多少内存的数据。

Heroku的文档说,dynos get 512MB of memory并开始抛出R14和R15错误,因为他们用完。你有没有在日志中看到R14或R15?

+0

没有看到任何R14问题。这消失了。我相信这实际上是一个临时的英雄问题。 – Nader

+0

@Nader这很好,它是固定的!你可能想回答你自己的问题,提及它神奇地消失了。你问过Heroku Support吗? – culix