我使用Apache + Passenger来托管一些Rails应用程序。当没有更长时间的请求时,某些东西似乎进入睡眠模式。然后,该站点需要10-20秒才能加载。当没有更长时间的请求时,感觉有些东西必须醒来。
我该如何解决?我有足够的内存,所以如果进入睡眠状态只是保持清醒,应该没问题。 ;)
答案 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