OutOfMemoryError:在rails控制台上运行jruby但不使用-J-Xmx定义的所有内存时,Java堆空间

OutOfMemoryError:在rails控制台上运行jruby但不使用-J-Xmx定义的所有内存时,Java堆空间,java,ruby-on-rails,jruby,rails-console,java-memory-model,Java,Ruby On Rails,Jruby,Rails Console,Java Memory Model,我有一个使用jruby 1.7的rails 3应用程序,我正试图在需要大量内存的情况下在本地开发环境(使用jdk 7的OS X 10.8)上使用rails控制台。我按如下方式运行rails控制台: jruby-J-Xms1024m-J-Xmx4096m-J-XX:+UseConMarkSweepGC-J-XX:+CMSIncrementalMode-S rails c-hml 然后,我使用rails控制台启动一个长时间运行的进程/ jruby java进程总是在引发“OutOfMemoryErr

我有一个使用jruby 1.7的rails 3应用程序,我正试图在需要大量内存的情况下在本地开发环境(使用jdk 7的OS X 10.8)上使用rails控制台。我按如下方式运行rails控制台:

jruby-J-Xms1024m-J-Xmx4096m-J-XX:+UseConMarkSweepGC-J-XX:+CMSIncrementalMode-S rails c-hml

然后,我使用rails控制台启动一个长时间运行的进程/


jruby java进程总是在引发“OutOfMemoryError:java堆空间”错误后失败。但是,当我运行控制台并检查活动监视器时,它实际上从未使用超过700 mb的内存。

您的java周围是否有某种包装器?通常是
-Xmx

jruby -Xms1024m -Xmx4096m -XX:+UseConcMarkSweepGC -J-XX:+CMSIncrementalMode -S rails c samuel_hml

这只是一个猜测,但我在使用java本机缓冲区时遇到了类似的问题。我设置了2048MB的最大堆大小,并获得了OutOfMemoryError,尽管监视器显示并没有使用所有内存。 真正的问题不是java内存,而是实际耗尽的本机内存。我用系统监视器检查了一下

当我减少java的内存量,为本机缓冲区提供更多的可用空间时,我的问题就解决了

所以,也许这里有一些相似的东西?

我找到了解决方案:

RAILS_ENV=samuel_hml jruby -J-Xms1024m -J-Xmx4096m -J-XX:+UseConcMarkSweepGC -J-XX:+CMSIncrementalMode -S rails c

jruby忽略了我的“-J-Xms1024m-J-Xmx4096m-J-XX:+UseConMarkSweepGC-J-XX:+CMSIncrementalMode”参数

您是否尝试使用类似的工具创建头部转储