我使用Apache + Passenger来托管一些Rails应用程序。当没有更长时间的请求时,某些东西似乎进入睡眠模式。然后需要10-20秒才能加载该站点。感觉就像在没有更长时间的要求时必须醒来。我的乘客电动Rails应用程序有时需要很长时间才能加载
我该如何解决这个问题?我有足够的内存,所以如果进入睡眠只是保持清醒状态,那应该没有问题。 ;)
我使用Apache + Passenger来托管一些Rails应用程序。当没有更长时间的请求时,某些东西似乎进入睡眠模式。然后需要10-20秒才能加载该站点。感觉就像在没有更长时间的要求时必须醒来。我的乘客电动Rails应用程序有时需要很长时间才能加载
我该如何解决这个问题?我有足够的内存,所以如果进入睡眠只是保持清醒状态,那应该没有问题。 ;)
查看Passenger的PassengerPoolIdleTime
参数。 它指出应用程序实例在关闭以保存内存之前可以闲置的最大秒数。
默认值是300,但您可以尝试设置更高的数字并查看是否有帮助。
此外,如果您在共享主机上并且无法更改该设置,则可以随时编写一个cron脚本以每x秒点击一次(其中x稍小于PassengerPoolIdleTime),然后更新您的分析包忽略来自正在进行轮询的框的IP地址的请求。
乘客文档建议将PassengerPoolIdleTime设置为仅运行少数Rails应用程序的非共享主机上的0。这应该防止卸载,除非它是绝对必要的。
@ x0ne,您可以在全局服务器配置中设置PoolIdleTime(nginx中的pool_idle_time)。在我的安装Nginx的/opt/nginx/conf/nginx.conf。
以下是涵盖PoolIdleTime的乘客文档部分:http://www.modrails.com/documentation/Users%20guide.html#PassengerPoolIdleTime