使用 jruby_opts 增加 JRuby 的堆大小

Increasing heap size for JRuby using jruby_opts

我在增加 JRuby 的堆大小方面遇到了问题。该应用程序是 运行 Phusion Passenger,我使用 RVM 安装了 JRuby。

我试过了

export JRUBY_OPTS="-J-Xmx1024m"

但它不会改变堆大小。我试过了

jruby -J-Xmx1024m

但它没有 return 并且卡住了。

目前我不确定如何增加限制。我得到

gc overhead limit exceeded

经常停止应用程序。而且 Web 应用程序超级慢。

还有如何知道 Xmx 是否已设置。我正在做 ps aux | grep jruby 并低于 return:

apache   11646 74.1 33.4 1861684 687864 ?      Sl   14:00  29:24 /usr/bin/java -Djdk.home= -Djruby.home=/usr/local/rvm/rubies/jruby-1.7.16 -Djruby.script=jruby -Djruby.shell=/bin/sh -Djffi.boot.library.path=/usr/local/rvm/rubies/jruby-1.7.16/lib/jni:/usr/local/rvm/rubies/jruby-1.7.16/lib/jni/x86_64-Linux:/usr/local/rvm/rubies/jruby-1.7.16/lib/jni/i386-Linux:/usr/local/rvm/rubies/jruby-1.7.16/lib/jni/arm-Linux **-Xmx500m -Xss2048k** -Dsun.java.command=org.jruby.Main -cp  -Xbootclasspath/a:/usr/local/rvm/rubies/jruby-1.7.16/lib/jruby.jar org/jruby/Main /usr/local/rvm/gems/ruby-1.9.3-p125/gems/passenger-4.0.41/helper-scripts/rack-loader.rb

以上命令显示 jruby 使用默认 Xmx 选项。

任何帮助将不胜感激。

如果您在 Apache 下使用 Passenger,您应该在虚拟主机中使用 SetEnv 来设置环境变量以用于该进程。 http://httpd.apache.org/docs/2.4/mod/mod_env.html

SetEnv JRUBY_OPTS -J-Xmx1024m