2015-06-11 57 views
5

我打了一個昂貴的電話給我的Heroku Rails服務器。 13至15秒後,瀏覽器中的控制檯報告服務不可用503錯誤。但是,當我查看我的heroku日誌時,它會報告:503服務不可用,但heroku日誌顯示200

Completed 200 OK in 45592ms (Views: 220.3ms | ActiveRecord: 33457.5ms) 

其他時候,heroku日誌報告超出配額的內存。下面是一個例子。

2015-06-11T15:17:20.238285+00:00 app[web.1]: Completed 200 OK in 81881ms (Views: 201.6ms | ActiveRecord: 18021.2ms) 
2015-06-11T15:17:33.482930+00:00 heroku[web.1]: Process running mem=841M(164.4%) 
2015-06-11T15:17:33.482930+00:00 heroku[web.1]: Error R14 (Memory quota exceeded) 
2015-06-11T15:17:53.147570+00:00 heroku[web.1]: Process running mem=841M(164.4%) 
2015-06-11T15:17:53.147679+00:00 heroku[web.1]: Error R14 (Memory quota exceeded) 
2015-06-11T15:17:59.751540+00:00 app[web.1]: E, [2015-06-11T15:17:59.695813 #3] ERROR -- : worker=2 PID:13 timeout (121s > 120s), killing 
2015-06-11T15:17:59.916750+00:00 app[web.1]: E, [2015-06-11T15:17:59.906435 #3] ERROR -- : reaped #<Process::Status: pid 13 SIGKILL (signal 9)> worker=2 
2015-06-11T15:18:02.487428+00:00 app[web.1]: I, [2015-06-11T15:18:02.427293 #16] INFO -- : worker=2 ready 

爲什麼當控制檯報告503時報告了Completed 200?

+0

您完全確定您在Heroku日誌中給出的條目是否與您從瀏覽器發送的請求相符? –

+0

是的,我。只有一個請求發送,我是唯一使用該應用程序的請求。 – jason328

+0

這不是rails,但它有幾個一般的東西來嘗試調試這個http://stackoverflow.com/questions/22386148/apigee-api-end-point-gives-503-on-the-browser-but -a-200-on-apigee-trace-and-cur –

回答

2

這裏有2米不同的東西:

  • 您的應用程序
  • Heroku的負載平衡器

在這種情況下,負載平衡器看到該請求的時間過長,併發送你的503.在後面,服務處理請求並返回以200完成。

參見:

https://devcenter.heroku.com/articles/limits

https://devcenter.heroku.com/articles/request-timeout

+0

我將超時設置爲120秒。考慮到13秒後出現503錯誤,我不認爲這是問題。 – jason328

+0

查看日誌並搜索H12我發現30秒後路由器超時並返回503消息。這是在此答案中列出的限制文章中記錄的。 – user1881102

+0

投票,對我來說,30秒的限制是問題。 –

0

Heroku的不給我們提供了error-code = H10多的信息。簡單的說,你的應用程序代碼/配置出了問題。要查看發生了什麼問題,請運行heroku run rails console,您將能夠看到錯誤詳細信息,這將有助於您解決錯誤。無需使用日誌。 heroku run rails console是一個很大的幫助

相關問題