2011-09-29 64 views
0

首先,我對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超時?

回答

1

原來這是Heroku上的一個暫時的問題,持續了幾天。它解決了它自己。

0

我會嘗試安裝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