Ruby on rails 应用程序的间歇性超时永远不会超时(不是“R12请求超时”错误)

Ruby on rails 应用程序的间歇性超时永远不会超时(不是“R12请求超时”错误),ruby-on-rails,heroku,ruby-on-rails-3.2,timeout,Ruby On Rails,Heroku,Ruby On Rails 3.2,Timeout,我有一个简单的商业Rails 3.2.13应用程序,只有一个用户,有非常小的Postgres数据库表和非常简单的活动记录数据库查询。我在Unicorn web服务器上的两个dynos上运行它,零工人。该应用程序的根页面通常在开发过程中加载约150毫秒,在Heroku的生产过程中加载不到1秒 除非它随机超时。我在日志中看到超时,但不是典型的R12请求超时。超时情况如下所示: 2013-05-28T16:04:28.004290+00:00 app[web.2]: Started GET "/" f

我有一个简单的商业Rails 3.2.13应用程序,只有一个用户,有非常小的Postgres数据库表和非常简单的活动记录数据库查询。我在Unicorn web服务器上的两个dynos上运行它,零工人。该应用程序的根页面通常在开发过程中加载约150毫秒,在Heroku的生产过程中加载不到1秒

除非它随机超时。我在日志中看到超时,但不是典型的R12请求超时。超时情况如下所示:

2013-05-28T16:04:28.004290+00:00 app[web.2]: Started GET "/" for 72.28.209.197 at 2013-05-28 16:04:28 +0000
2013-05-28T16:04:44.225643+00:00 app[web.2]: E, [2013-05-28T16:04:44.225444 #2] ERROR -- : worker=2 PID:87 timeout (16s > 15s), killing
2013-05-28T16:04:44.238422+00:00 heroku[router]: at=error code=H13 desc="Connection closed without response" method=GET path=/ host=[REDACTED].herokuapp.com fwd="72.28.209.197" dyno=web.2 connect=7ms service=16240ms status=503 bytes=0
2013-05-28T16:04:44.255813+00:00 app[web.2]: E, [2013-05-28T16:04:44.255554 #2] ERROR -- : reaped #<Process::Status: pid 87 SIGKILL (signal 9)> worker=2
2013-05-28T16:04:44.298023+00:00 app[web.2]: I, [2013-05-28T16:04:44.297643 #103]  INFO -- : worker=2 ready
2013-05-28T16:03:36.965507+00:00 app[web.1]: sequenceId="102642"] Started GET "/" for 72.28.209.197 at 2013-05-28 16:03:36 +0000
2013-05-28T16:03:37.388261+00:00 app[web.1]: sequenceId="102690"] Processing by OverviewController#index as HTML
2013-05-28T16:03:38.238877+00:00 app[web.1]: sequenceId="102707"]   Rendered overview/index.html.erb within layouts/application (315.8ms)
2013-05-28T16:03:38.311974+00:00 app[web.1]: sequenceId="102710"] Completed 200 OK in 924ms (Views: 432.4ms | ActiveRecord: 92.1ms)
2013-05-28T16:03:38.322786+00:00 heroku[router]: at=info method=GET path=/ host=[REDACTED].herokuapp.com fwd="72.28.209.197" dyno=web.1 connect=2ms service=1375ms status=200 bytes=136795
2013-05-28T16:03:42.625787+00:00 app[web.1]: sequenceId="102940"] Started GET "/assets/favicon.ico" for 72.28.209.197 at 2013-05-28 16:03:42 +0000
2013-05-28T16:03:58.753408+00:00 app[web.1]: sequenceId="104359"] E, [2013-05-28T16:03:58.753173 #2] ERROR -- : worker=2 PID:66 timeout (16s > 15s), killing
2013-05-28T16:03:58.801152+00:00 app[web.1]: sequenceId="104362"] E, [2013-05-28T16:03:58.800993 #2] ERROR -- : reaped #<Process::Status: pid 66 SIGKILL (signal 9)> worker=2
2013-05-28T16:03:58.798722+00:00 heroku[router]: at=error code=H13 desc="Connection closed without response" method=GET path=/assets/favicon.ico host=[REDACTED].herokuapp.com fwd="72.28.209.197" dyno=web.1 connect=3ms service=16175ms status=503 bytes=0
2013-05-28T16:03:59.127150+00:00 app[web.1]: sequenceId="104397"] I, [2013-05-28T16:03:59.126795 #84]  INFO -- : worker=2 ready

除了把它从Heroku上移开之外,我不知道如何稳定这个应用程序。我不知道如何解决这个问题,我想Heroku也帮不上忙。我只是被卡住了吗?除了将应用程序移动到Engine Yard之外,我还有其他解决问题的方法吗?

这里没有任何帮助,这个网站是Heroku的技术支持。每个月支付35美元并不能为我赢得任何支持,所以我陷入困境,与Heroku的合作没有出路


所以我对这个问题的答案是将应用程序移动到Engine Yard。我看不出我还有其他选择。Heroku工作时非常棒,不工作时完全是个谜,没有技术支持。

这里没有任何帮助,这个网站是Heroku的技术支持。每个月支付35美元并不能为我赢得任何支持,所以我陷入困境,与Heroku的合作没有出路


所以我对这个问题的答案是把应用程序移到引擎场。我看不出我还有其他选择。Heroku工作时非常棒,不工作时完全是一个谜,没有技术支持。

我可能错了,但似乎是请求favicon.ico的问题,而不是索引操作的问题。尝试添加favicon。还考虑从日志中删除项目URL,以防万一:这是对Rails应用程序的超时请求。最后我看到了通用的“应用程序错误”页面。我编辑了实际的应用程序URL,谢谢你的建议。
2013-05-28161:03:58.798722+00:00 heroku[router]:at=Error code=H13 desc=“连接关闭而无响应”method=GET path=/assets/favicon.ico host=[redacted].herokuapp.com fwd=“72.28.209.197”dyno=web.1 connect=3ms service=16175ms status=503 bytes=0
这一行清楚地说明了请求无法获得favicon,而之前的操作被渲染为罚款。在environments/production.rb中,is
config.assets.compile=false
可能是错误的,但对favicon.ico的请求似乎有问题,而不是索引操作。尝试添加favicon。还考虑从日志中删除项目URL,以防万一:这是对Rails应用程序的超时请求。最后我看到了通用的“应用程序错误”页面。我编辑了实际的应用程序URL,谢谢你的建议。
2013-05-28161:03:58.798722+00:00 heroku[router]:at=Error code=H13 desc=“连接关闭而无响应”method=GET path=/assets/favicon.ico host=[redacted].herokuapp.com fwd=“72.28.209.197”dyno=web.1 connect=3ms service=16175ms status=503 bytes=0
这一行清楚地说明了请求无法获得favicon,而之前的操作在environments/production.rb中表现良好。我想这个问题是件好事,因为在我将应用程序移动到Engine Yard Cloud之后,该页面上的响应时间从Heroku上的1s(当它工作时)变为不到200ms。它只在一个“小”实例上运行。以与Heroku dyno完全相同的35美元/月价格,engine yard最终是否是您的一个好选择?我有一个类似的问题,我想这个问题是件好事,因为在我将应用程序移动到Engine Yard Cloud后,该页面上的响应时间从Heroku上的1s(当它工作时)变为不到200ms。它只在一个“小”实例上运行。以与Heroku dyno完全相同的35美元/月价格,engine yard最终是否是您的一个好选择?我也有类似的问题
class OverviewController < ApplicationController

  def index
    @current_event = Event.recent
    @areas = Area.order(:position)
    @reservations = Reservation.find(:all,
      :conditions => { :event_id => @current_event.id },
      :order => 'created_at DESC',
      :limit => 5)
  end

end
def self.recent
  Event.last || Event.create
end