我是 Rails 的新手,我面临这个问题:
当我使用脚本/服务器(我猜叫 webrick)时,我的应用程序在我的开发机器上运行良好
问题是当我使用 mod_rails 将应用程序上线时。闲置一段时间后,需要很长时间才能启动,并且总体感觉速度较慢。
我被告知在我的 apache 文件上执行以下操作:
<VirtualHost *:80>
ServerName server.com
DocumentRoot /var/www/server.com/public
PassengerPoolIdleTime 99999
</VirtualHost>
问题是我发现这个功能不太优雅,如果我过一段时间不使用我的应用程序,它就会再次启动。
谢谢!
答案1
如果此服务器拥有足够的资源,您应该考虑让乘客进程持续运行。您可以通过将一些超时设置为 0 来实现这一点。
PassengerPoolIdleTime 0
RailsFrameworkSpawnerIdleTime 0
RailsAppSpawnerIdleTime 0
另外,设置更多正在运行的 ruby 实例可能有助于解决可能出现的负载问题
PassengerMaxPoolSize 8
您可以在以下链接中找到所有可能的 apache 乘客配置参数的完整详细信息。特别是,查看 PassengerHighPerformance 并查看它是否适合您。还请查看底部附近解释的三种不同的轨道生成方法。根据您的应用程序,您可能能够通过使用更快的生成器之一来获得相当大的速度提升。