2011-09-08 21 views
3

最近我在jruby(1.6.4)平臺上部署我的Rails 3項目來保護ruby源代碼。如何優化jruby上的rails項目?

我使用warble將我的rails項目打包成Apache Tomcat的war文件(6),然後使用NGINX作爲前端web服務器來代理後端tomcat。

我發現JRuby在應用程序初始化過程中佔用了很高的內存和cpu,這需要將近三分鐘。

我想知道如何配置jruby(如JAVA_OPTS)和我的rails項目,以減少memery和cpu職業,並很快完成啓動。

和NGINX代理後端tomcat是在jruby項目上部署rails的合適方式嗎?


[email protected]:~/code/ntdeck$ java -version 
java version "1.6.0_26" 
Java(TM) SE Runtime Environment (build 1.6.0_26-b03) 
Java HotSpot(TM) 64-Bit Server VM (build 20.1-b02, mixed mode) 

[email protected]:~/code/ntdeck$ jruby -v 
jruby 1.6.4 (ruby-1.8.7-p330) (2011-08-23 17ea768) (Java HotSpot(TM) 64-Bit Server VM 1.6.0_26) [linux-amd64-java] 

apache-tomcat-6.0.33 
nginx-1.0.6 
ubuntu 11 

回答

2

也許你能做的最好的事情就是確保設置jruby.min.runtimes = jruby.max.runtimes = 1,並運行Rails的線程模式。由於您只需啓動一個運行時,並減少多次運行時的內存開銷,它將縮短初始化時間。

最後,如果您找到應用程序的穩態內存級別,則可能需要在Tomcat設置中明確指出JVM的最大內存。