Ruby on rails 日志项记录的Heroku路由器错误H13

Ruby on rails 日志项记录的Heroku路由器错误H13,ruby-on-rails,heroku,Ruby On Rails,Heroku,我试图弄清楚,我经常从日志条目中得到的这些错误是否值得担心。我有一个与heroku上的Rails API对话的iPhone应用程序。我使用HireFire自动增加和减少应用程序所需的dynos和Worker的数量 我认为这些错误是由dyno缩小,然后某个东西调用该dyno,从而导致H13错误引起的。如果是这样,有没有办法阻止这种情况?用户请求肯定不会转到不再存在的dyno 以下是我在上下文中得到的最常见的日志: 1. 2012-10-18 10:01:15.170 209 <13>1

我试图弄清楚,我经常从日志条目中得到的这些错误是否值得担心。我有一个与heroku上的Rails API对话的iPhone应用程序。我使用HireFire自动增加和减少应用程序所需的dynos和Worker的数量

我认为这些错误是由dyno缩小,然后某个东西调用该dyno,从而导致H13错误引起的。如果是这样,有没有办法阻止这种情况?用户请求肯定不会转到不再存在的dyno

以下是我在上下文中得到的最常见的日志:

1.

2012-10-18 10:01:15.170 209 <13>1 2012-10-18T10:01:14+00:00 app web.1 - - Started GET "/hirefireapp/xxxxxxxxxxxxxxxx/info" for 23.22.73.241 at Thu Oct 18 03:01:14 -0700 2012
2012-10-18 10:01:15.170 162 <13>1 2012-10-18T10:01:14+00:00 app web.1 - - cache: [GET /hirefireapp/xxxxxxxxxxxxxxxx/info] miss
2012-10-18 10:01:22.147 146 <13>1 2012-10-18T10:01:22+00:00 app web.2 - - Connected to NewRelic Service at collector-2.newrelic.com:80
2012-10-18 10:01:22.308 217 <13>1 2012-10-18T10:01:22+00:00 app web.2 - - ** [NewRelic][10/18/12 03:01:22 -0700 xxxxxxxxxxxxxxxx (2)] INFO : Reporting performance data every 60 seconds.
2012-10-18 10:01:38.118 86 <13>1 2012-10-18T10:01:38+00:00 app web.2 - -
2012-10-18 10:01:38.212 86 <13>1 2012-10-18T10:01:38+00:00 app web.2 - -
2012-10-18 10:01:38.212 154 <13>1 2012-10-18T10:01:38+00:00 app web.2 - - Started GET "/" for 204.93.223.151 at Thu Oct 18 03:01:38 -0700 2012
2012-10-18 10:01:38.212 128 <13>1 2012-10-18T10:01:38+00:00 app web.2 - -   Processing by CmsController#index as */*
2012-10-18 10:01:38.212 148 <13>1 2012-10-18T10:01:38+00:00 app web.2 - - Rendered cms/index.html.erb within layouts/application (4.8ms)
2012-10-18 10:01:41.291 124 <40>1 2012-10-18T10:01:41+00:00 heroku web.2 - - Stopping all processes with SIGTERM
2012-10-18 10:01:42.243 217 <158>1 2012-10-18T10:01:42+00:00 heroku router - - Error H13 (Connection closed without response) -> GET my-api.heroku.com/ dyno=web.2 queue= wait= service= status=503 bytes=
2012-10-16 17:31:25.184 189 <13>1 2012-10-16T17:31:25+00:00 app web.2 - - ** [NewRelic][10/16/12 10:31:25 -0700 (2)] INFO : Dispatcher: thin
2012-10-16 17:31:25.184 197 <13>1 2012-10-16T17:31:25+00:00 app web.2 - - ** [NewRelic][10/16/12 10:31:25 -0700 (2)] INFO : Application: my-api
2012-10-16 17:31:25.184 220 <13>1 2012-10-16T17:31:25+00:00 app web.2 - - ** [NewRelic][10/16/12 10:31:25 -0700 (2)] INFO : New Relic Ruby Agent 3.3.1 Initialized: pid = 2
2012-10-16 17:31:25.585 265 <13>1 2012-10-16T17:31:25+00:00 app web.2 - - ** [NewRelic][10/16/12 10:31:25 -0700 (2)] INFO : NewRelic::Agent::Samplers::DelayedJobLockSampler sampler not available: No DJ worker present
2012-10-16 17:31:37.068 217 <13>1 2012-10-16T17:31:37+00:00 app web.2 - - ** [NewRelic][10/16/12 10:31:36 -0700 (2)] INFO : Reporting performance data every 60 seconds.
2012-10-16 17:31:39.786 86 <13>1 2012-10-16T17:31:39+00:00 app web.2 - -
2012-10-16 17:31:39.884 86 <13>1 2012-10-16T17:31:39+00:00 app web.2 - -
2012-10-16 17:31:39.884 154 <13>1 2012-10-16T17:31:39+00:00 app web.2 - - Started GET "/" for xxx.xx.xxx.xxx at Tue Oct 16 10:31:39 -0700 2012
2012-10-16 17:31:39.884 128 <13>1 2012-10-16T17:31:39+00:00 app web.2 - -   Processing by CmsController#index as */*
2012-10-16 17:31:39.981 149 <13>1 2012-10-16T17:31:39+00:00 app web.2 - - Rendered cms/index.html.erb within layouts/application (18.1ms)
2012-10-16 17:31:46.082 217 <158>1 2012-10-16T17:31:46+00:00 heroku router - - Error H13 (Connection closed without response) -> GET my-api.heroku.com/ dyno=web.2 queue= wait= service= status=503 bytes=
2012-10-18 10:01:15.170 209 1 2012-10-18T10:01:14+00:00应用程序web.1--于2012年10月18日星期四03:01:14-0700开始获取“/hirefirepa/xxxxxxxxxxxxxxxxxx/info”
2012-10-18 10:01:15.170 162 1 2012-10-18T10:01:14+00:00应用程序web.1--缓存:[GET/hirefirepa/xxxxxxxxxxxxxx/info]未命中
2012-10-18 10:01:22.147 146 1 2012-10-18T10:01:22+00:00应用程序web.2--连接到collector-2的NewRelic服务。NewRelic.com:80
2012-10-18 10:01:22.308 217 1 2012-10-18T10:01:22+00:00应用程序web.2---**[NewRelic][10/18/12 03:01:22-0700 XXXXXXXXXXXXXXXXXXXXXX(2)]信息:每60秒报告一次性能数据。
2012-10-18 10:01:38.118 86 1 2012-10-18T10:01:38+00:00应用程序网页-
2012-10-18 10:01:38.212 86 1 2012-10-18T10:01:38+00:00应用程序网页-
2012-10-18 10:01:38.212 154 1 2012-10-18T10:01:38+00:00应用程序web.2--在2012年10月18日星期四03:01:38-0700开始获取204.93.223.151的“/”
2012-10-18 10:01:38.212 128 1 2012-10-18T10:01:38+00:00应用程序web.2--由CmsController处理#索引为*/*
2012-10-18 10:01:38.212 148 1 2012-10-18T10:01:38+00:00应用程序web.2--布局/应用程序中呈现的cms/index.html.erb(4.8ms)
2012-10-18 10:01:41.291 124 1 2012-10-18T10:01:41+00:00 heroku web.2--使用SIGTERM停止所有进程
2012-10-18 10:01:42.243 217 1 2012-10-18T10:01:42+00:00 heroku路由器--错误H13(连接关闭而无响应)->获取my-api.heroku.com/dyno=web.2队列=等待=服务=状态=503字节=
2.

2012-10-18 10:01:15.170 209 <13>1 2012-10-18T10:01:14+00:00 app web.1 - - Started GET "/hirefireapp/xxxxxxxxxxxxxxxx/info" for 23.22.73.241 at Thu Oct 18 03:01:14 -0700 2012
2012-10-18 10:01:15.170 162 <13>1 2012-10-18T10:01:14+00:00 app web.1 - - cache: [GET /hirefireapp/xxxxxxxxxxxxxxxx/info] miss
2012-10-18 10:01:22.147 146 <13>1 2012-10-18T10:01:22+00:00 app web.2 - - Connected to NewRelic Service at collector-2.newrelic.com:80
2012-10-18 10:01:22.308 217 <13>1 2012-10-18T10:01:22+00:00 app web.2 - - ** [NewRelic][10/18/12 03:01:22 -0700 xxxxxxxxxxxxxxxx (2)] INFO : Reporting performance data every 60 seconds.
2012-10-18 10:01:38.118 86 <13>1 2012-10-18T10:01:38+00:00 app web.2 - -
2012-10-18 10:01:38.212 86 <13>1 2012-10-18T10:01:38+00:00 app web.2 - -
2012-10-18 10:01:38.212 154 <13>1 2012-10-18T10:01:38+00:00 app web.2 - - Started GET "/" for 204.93.223.151 at Thu Oct 18 03:01:38 -0700 2012
2012-10-18 10:01:38.212 128 <13>1 2012-10-18T10:01:38+00:00 app web.2 - -   Processing by CmsController#index as */*
2012-10-18 10:01:38.212 148 <13>1 2012-10-18T10:01:38+00:00 app web.2 - - Rendered cms/index.html.erb within layouts/application (4.8ms)
2012-10-18 10:01:41.291 124 <40>1 2012-10-18T10:01:41+00:00 heroku web.2 - - Stopping all processes with SIGTERM
2012-10-18 10:01:42.243 217 <158>1 2012-10-18T10:01:42+00:00 heroku router - - Error H13 (Connection closed without response) -> GET my-api.heroku.com/ dyno=web.2 queue= wait= service= status=503 bytes=
2012-10-16 17:31:25.184 189 <13>1 2012-10-16T17:31:25+00:00 app web.2 - - ** [NewRelic][10/16/12 10:31:25 -0700 (2)] INFO : Dispatcher: thin
2012-10-16 17:31:25.184 197 <13>1 2012-10-16T17:31:25+00:00 app web.2 - - ** [NewRelic][10/16/12 10:31:25 -0700 (2)] INFO : Application: my-api
2012-10-16 17:31:25.184 220 <13>1 2012-10-16T17:31:25+00:00 app web.2 - - ** [NewRelic][10/16/12 10:31:25 -0700 (2)] INFO : New Relic Ruby Agent 3.3.1 Initialized: pid = 2
2012-10-16 17:31:25.585 265 <13>1 2012-10-16T17:31:25+00:00 app web.2 - - ** [NewRelic][10/16/12 10:31:25 -0700 (2)] INFO : NewRelic::Agent::Samplers::DelayedJobLockSampler sampler not available: No DJ worker present
2012-10-16 17:31:37.068 217 <13>1 2012-10-16T17:31:37+00:00 app web.2 - - ** [NewRelic][10/16/12 10:31:36 -0700 (2)] INFO : Reporting performance data every 60 seconds.
2012-10-16 17:31:39.786 86 <13>1 2012-10-16T17:31:39+00:00 app web.2 - -
2012-10-16 17:31:39.884 86 <13>1 2012-10-16T17:31:39+00:00 app web.2 - -
2012-10-16 17:31:39.884 154 <13>1 2012-10-16T17:31:39+00:00 app web.2 - - Started GET "/" for xxx.xx.xxx.xxx at Tue Oct 16 10:31:39 -0700 2012
2012-10-16 17:31:39.884 128 <13>1 2012-10-16T17:31:39+00:00 app web.2 - -   Processing by CmsController#index as */*
2012-10-16 17:31:39.981 149 <13>1 2012-10-16T17:31:39+00:00 app web.2 - - Rendered cms/index.html.erb within layouts/application (18.1ms)
2012-10-16 17:31:46.082 217 <158>1 2012-10-16T17:31:46+00:00 heroku router - - Error H13 (Connection closed without response) -> GET my-api.heroku.com/ dyno=web.2 queue= wait= service= status=503 bytes=
2012-10-16 17:31:25.1841891 2012-10-16T17:31:25+00:00应用程序web.2---**[NewRelic][10/16/12 10:31:25-0700(2)]信息:调度程序:瘦
2012-10-16 17:31:25.18419712012-10-16T17:31:25+00:00应用程序web.2---**[NewRelic][10/16/12 10:31:25-0700(2)]信息:应用程序:我的api
2012-10-16 17:31:25.184 220 1 2012-10-16T17:31:25+00:00应用程序web.2---**[NewRelic][10/16/12 10:31:25-0700(2)]信息:NewRelic Ruby Agent 3.3.1初始化:pid=2
2012-10-16 17:31:25.585 265 1 2012-10-16T17:31:25+00:00应用程序web.2---**[NewRelic][10/16/12 10:31:25-0700(2)]信息:NewRelic::Agent::Samplers::DelayedJobLockSampler不可用:没有DJ工作人员在场
2012-10-16 17:31:37.068 217 1 2012-10-16T17:31:37+00:00应用程序web.2---**[NewRelic][10/16/12 10:31:36-0700(2)]信息:每60秒报告一次性能数据。
2012-10-16 17:31:39.7868612012-10-16T17:31:39+00:00应用程序网页-
2012-10-16 17:31:39.8848612012-10-16T17:31:39+00:00应用程序网页-
2012-10-16 17:31:39.884 154 1 2012-10-16T17:31:39+00:00应用程序web.2--在2012年10月16日星期二10:31:39-0700开始为xxx.xx.xxx.xxx获取“/”
2012-10-16 17:31:39.884 128 1 2012-10-16T17:31:39+00:00应用程序web.2--由CmsController处理#索引为*/*
2012-10-16 17:31:39.98114912012-10-16T17:31:39+00:00应用程序web.2--布局/应用程序中呈现的cms/index.html.erb(18.1ms)
2012-10-16 17:31:46.082 217 1 2012-10-16T17:31:46+00:00 heroku路由器--错误H13(连接关闭而无响应)->获取my-api.heroku.com/dyno=web.2队列=等待=服务=状态=503字节=
任何建议都将不胜感激

谢谢
Pete

H13问题的一个潜在原因是机架密钥空间。Rack通过HTTP请求发送非常大的参数密钥,增加了对潜在恶意攻击的保护

Rack Utils对密钥空间65536设置了一个限制,如果发送带有大参数集的HTTP请求,该限制可能不够大

您可以通过向Rails初始值设定项文件添加以下内容来更改此限制:

if Rack::Utils.respond_to?("key_space_limit=")
  Rack::Utils.key_space_limit = 262144
end
我发现这个数字(4倍标准)足够大,可以为我解决H13问题,但您可能需要根据自己的个人需求测试不同的设置


这可能不是您特定H13问题的原因,但作为一种可能的解决方案,值得检查。

您是否解决了该问题?我遇到了同样的问题,想看看你是如何解决的。谢谢