我的乘客供电的Rails应用程序有时需要很长时间才能加载

时间:2009-02-24 13:31:40

标签: ruby-on-rails apache passenger

我使用Apache + Passenger来托管一些Rails应用程序。当没有更长时间的请求时,某些东西似乎进入睡眠模式。然后,该站点需要10-20秒才能加载。当没有更长时间的请求时,感觉有些东西必须醒来。

我该如何解决?我有足够的内存,所以如果进入睡眠状态只是保持清醒,应该没问题。 ;)

4 个答案:

答案 0 :(得分:10)

查看Passenger的PassengerPoolIdleTime参数。 它指出应用程序实例在关闭以节省内存之前可以空闲的最大秒数。

默认值为300,但您可以尝试设置更高的数字,看看是否有帮助。

答案 1 :(得分:1)

此外,如果您在共享主机上并且无法更改该设置,您可以随时编写一个cron脚本,每隔x秒(其中x略小于PassengerPoolIdleTime)点击您的网站,并更新您的分析package忽略来自正在进行轮询的框的IP地址的请求。

答案 2 :(得分:1)

乘客文档建议在仅运行少量Rails应用程序的非共享主机上将PassengerPoolIdleTime设置为0。这应该可以防止它被卸载,除非绝对必要。

答案 3 :(得分:0)

@ x0ne,您可以在全局服务器配置中设置PoolIdleTime(nginx中的pool_idle_time)。在我的Nginx安装中,它是/opt/nginx/conf/nginx.conf。

以下是乘客文档中涵盖PoolIdleTime的部分:http://www.modrails.com/documentation/Users%20guide.html#PassengerPoolIdleTime