我正在使用passenger / Apache 2.2在我的服务器上运行redmine(RoR应用程序)。 乘客和ruby正在使用太多的记忆。
有没有更多的内存有效的方式来运行redmine / ruby?
我只需要支持六个redmine用户。 我想继续使用Apache,但我打开所有不是“使用nginx / lighttpd”的build议。
(以下数据来自512MB VPS,因此Ruby仅为redmine使用128MB以上)
user ....... %mem ....... process ----------------------------------- www-data ... 13.6 0:00.65 ruby1.8 www-data ... 12.2 0:04.86 ruby1.8 www-data ... 9.4 0:04.15 apache2 www-data ... 9.0 0:13.94 apache2 www-data ... 3.2 0:00.27 apache2 root ... 2.5 0:00.23 apache2 root ... 1.9 0:01.19 ruby1.8
那么,对我来说什么比乘客更好?
谢谢你的想法!
您可以configuration多less个Rails处理Apache /乘客产生。 对于你的大小(3个并发请求)你应该罚款2轨进程:
设置这些在你的Apacheconfiguration:
PassengerMaxPoolSize 2 PassengerMaxInstancesPerApp 2
MaxPoolSize确定最多可以启动多less个实例,MaxInstancesPerApp确定每个Web-app可以有多less个实例。
你可能想玩:
PassengerPoolIdleTime
指定实例在卸载之前必须空闲多less秒。 默认值是300秒。
我运行相当高stream量的Web应用程序与3个实例没有任何问题。
哦,Ruby企业版也有帮助。
你使用ruby企业? http://www.rubyenterpriseedition.com/
要么使用Ruby Enterprise Edition (推荐使用Passenger),要么使用Ruby 1.9,而且加载速度也更快 。
你需要支持多less个并发请求? 我会用nginx和一小群杂种 。 这样你可以限制你的ruby应用程序使用的资源数量。
我用redmine的apache proxypass运行mongrels / mongrel_cluster更成功。 它不需要那么多的性能(它们是一堆非常大/很慢的进程,并且倾向于调用外部进程,你可能想在基准情况下尝试一下,我简单的设置。