OutOfMemoryError: пространство кучи Java при запуске jruby на консоли rails, но не с использованием всей памяти, определенной параметром -J-Xmx

У меня есть приложение rails 3, использующее jruby 1.7, и я пытаюсь использовать консоль rails в своей локальной среде разработки (OS X 10.8 с jdk 7) в ситуации, которая требует много памяти. Я запускаю консоль rails следующим образом:

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

Затем я запускаю длительный процесс, используя консоль rails/

Java-процесс jruby всегда дает сбой после возникновения ошибки «OutOfMemoryError: пространство кучи Java». Но когда я запускаю консоль и проверяю монитор активности, он никогда не использует больше 700 МБ.


person razenha    schedule 14.02.2013    source источник
comment
Вы пытались создать дамп головы с помощью инструмента sth. как visualvm   -  person Ömer Faruk Almalı    schedule 14.02.2013


Ответы (3)


Я нашел решение:

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:+UseConcMarkSweepGC -J-XX:+CMSIncrementalMode"

person razenha    schedule 20.02.2013

У вас есть какая-то оболочка вокруг вашей Java? Обычно это -Xmx

jruby -Xms1024m -Xmx4096m -XX:+UseConcMarkSweepGC -J-XX:+CMSIncrementalMode -S rails c samuel_hml
person Christian Kuetbach    schedule 14.02.2013

Это всего лишь предположение, но у меня были похожие проблемы, когда я работал с собственными буферами Java. Я установил максимальный размер кучи 2048 МБ и получил OutOfMemoryError, хотя монитор показывал, что не вся память используется. Настоящая проблема заключалась не в java-памяти, а в собственной памяти, которая фактически закончилась. Проверил системным монитором.

Моя проблема была решена, когда я уменьшил объем памяти для java, предоставив больше свободного места для собственных буферов.

Так может здесь у вас есть что-то похожее?

person ITCuties    schedule 14.02.2013