6

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

我该如何解决?我有足够的内存,所以如果什么东西睡着了就保持清醒应该没问题。;)

4

4 回答 4

10

看一下PassengerPoolIdleTimePassenger的参数。它规定了应用程序实例在关闭以节省内存之前可以空闲的最大秒数。

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

于 2009-02-24T13:46:40.647 回答
1

此外,如果您在共享主机上并且无法更改该设置,您始终可以编写一个 cron 脚本以每 x 秒访问一次您的站点(其中 x 略小于PassengerPoolIdleTime),并更新您的分析包以忽略来自进行轮询的盒子的 IP 地址的请求。

于 2009-02-24T19:51:45.573 回答
1

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

于 2010-10-13T11:26:32.253 回答
0

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

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

于 2010-10-18T17:47:10.273 回答