Как оптимизировать проект рельсов на jruby? - PullRequest
3 голосов
/ 08 сентября 2011

Недавно я развертываю свой проект Rails 3 на платформе jruby (1.6.4) для защиты исходного кода ruby.

Я использую warble, чтобы упаковать свой проект rails в файл war для Apache Tomcat (6), затем использую NGINX в качестве переднего веб-сервера для прокси-сервера tomcat.

Я обнаружил, что JRuby потребовал много памяти и процессора во время инициализации приложения, и это займет почти три минуты.

Я хочу узнать, как настроить jruby (например, JAVA_OPTS ) и мой проект rails, чтобы уменьшить загрузку памяти и процессоров и быстро завершить запуск.

А прокси-сервер NGINX Tomcat является подходящим способом развертывания рельсов в проекте jruby?


qichunren@qichunren-desktop:~/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)

qichunren@qichunren-desktop:~/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

1 Ответ

2 голосов
/ 08 сентября 2011

Вероятно, лучшее, что вы можете сделать, - это установить jruby.min.runtimes = jruby.max.runtimes = 1 и запустить Rails в поточно-безопасном режиме.Это сократит время инициализации, так как вам нужно только загрузить одну среду выполнения, и уменьшить накладные расходы памяти для нескольких сред выполнения.

Наконец, если вы найдете устойчивый уровень памяти для приложения, вы можете явно указатьмаксимальный объем памяти для JVM в настройках Tomcat.

...