代码之家  ›  专栏  ›  技术社区  ›  Lennart Koopmann

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

  •  6
  • Lennart Koopmann  · 技术社区  · 17 年前

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

    我该怎么解决这个问题?我有足够的RAM,所以如果任何睡着的东西都保持清醒,应该没问题。 ;)

    4 回复  |  直到 17 年前
        1
  •  10
  •   Jimmy Stenke    17 年前

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

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

        2
  •  1
  •   Gabe Hollombe    17 年前

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

        3
  •  1
  •   danbee    15 年前

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

        4
  •  0
  •   stcorbett    15 年前

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

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