我将我的Rails应用程序放在Heroku上,现在我看到启动时间非常慢。我的意思是,当我第一次访问我的Heroku网站(使用浏览器)时,显示索引页面需要花费太多时间,但是当我之后浏览网站时,请求需要正常时间。
那么我如何才能看到这个“第一次”请求需要花费这么多时间?
答案 0 :(得分:1)
这很正常,因为你没有为你的dyno支付费用,并且在一段时间后第一个dyno会闲置。
http://devcenter.heroku.com/articles/dynos
只有一个网络动态的应用程序将在一段时间不活动后被闲置。网络dyno将被关闭。当请求进入闲置的应用程序时,您的web dyno将自动重新启动,导致第一次请求延迟几秒钟。后续请求将正常执行。
拥有超过1个网络动态的应用程序永远不会闲置。工人dynos永远不会闲着。
如果要查看发生的情况,可以使用命令(从安装目录中)
heroku日志
它将显示您服务器的日志。
在我的临时环境中,如果我现在查询(当我的dyno空转时),我可以在日志中看到
2012-02-18T12:17:24+00:00 heroku[web.1]: Unidling
2012-02-18T12:17:24+00:00 heroku[web.1]: State changed from down to created
2012-02-18T12:17:24+00:00 heroku[web.1]: State changed from created to starting
[.....]
2012-02-18T12:17:42+00:00 heroku[router]: GET [...] dyno=web.1 queue=0 wait=0ms service=9ms status=200 bytes=0
=>我的第一次请求花了大约20秒才完成。