我已按照this answer中列出的说明操作,以防止乘客在未使用几分钟后关闭我的应用。但是,这些都没有奏效。
如果我在大约1分钟后刷新我的网站(仅在我的Mac上本地提供服务),则需要大约6秒才能加载。经过长时间的加载,网站现在很快,一切都很好。如果我让它再坐一分钟,再刷新又需要6秒钟。
这是我的/etc/apache2/other/Passenger.conf
文件:
LoadModule passenger_module /Users/maq/.rvm/gems/ruby-2.0.0-p247/gems/passenger-4.0.14/buildout/apache2/mod_passenger.so
PassengerRoot /Users/maq/.rvm/gems/ruby-2.0.0-p247/gems/passenger-4.0.14
PassengerDefaultRuby /Users/maq/.rvm/wrappers/ruby-2.0.0-p247/ruby
PassengerSpawnMethod smart
PassengerPoolIdleTime 1000
RailsAppSpawnerIdleTime 0
PassengerMaxRequests 5000
PassengerMaxPoolSize 30
PassengerMinInstances 1
PassengerEnabled on
我在更改所有这些设置后重新启动了Apache。
还有什么想法吗?
更新
我尝试了cron作业路径,我每分钟都会运行一个cron作业来访问网页并确保它保持活跃状态。有趣的是,这也不起作用。
它正确访问网页,我在我的日志中看到每分钟都在访问该页面,但是每当我尝试在用户生成的活动一分钟左右后在浏览器中访问它时,就会有6秒加载。这可能是什么?
注意:我使用的是Rails 4.0。
答案 0 :(得分:0)
事实证明,我的问题的原因不是Passenger,而是Apache和DNS。
这是Mac OSX问题,您可以在此处找到有关问题/解决方案的更多信息: http://clauswitt.com/fixing-slow-dns-queries-in-os-x-lion.html
基本上,如果您的/etc/hosts
文件中有一个名为:
127.0.0.1 railsapp.local
您需要添加其IPv6副本,以便系统不会执行远程DNS查询:
fe80::1%lo0 railsapp.local