我在增加JRuby的堆大小方面遇到了问题。该应用程序正在运行Phusion Passenger,我使用RVM安装了JRuby。
我试过
export JRUBY_OPTS="-J-Xmx1024m"
但它不会改变堆的大小。我试过
jruby -J-Xmx1024m
但它没有回来,被卡住了。
在这一点上,我不确定如何提高限额。我得到
gc开销限制超过
非常频繁,这会停止应用程序。而且web应用程序速度非常慢。
以及如何知道是否设置了Xmx
。我正在做ps aux | grep jruby
,并得到以下回报:
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,您应该在vhost中使用SetEnv来设置要与进程一起使用的环境变量。http://httpd.apache.org/docs/2.4/mod/mod_env.html
SetEnv JRUBY_OPTS -J-Xmx1024m