2014-11-19 6 views
1

"-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp" Этот параметр поможет автоматически удалить кучу кучи при достижении предельного значения сервера.-XX: + HeapDumpOnOutOfMemoryError Создание множественного дампа кучи

http://www.oracle.com/technetwork/java/javase/clopts-139448.html#gbzrr

можно увидеть подробную информацию по ссылке выше, но печатает «OutOfMemoryError» сообщение так много раз в мое время журнала сервера.

Итак, если ошибка msg возникает несколько раз, будет ли JVM принимать несколько дампов кучи?

С уважением, Питер

ответ

0

Там другие причины ошибок "OutOfMemoryError".

Неспособность создать новый поток - один из примеров.

Кроме того, память может быть освобождена, поскольку исключение OutOfMemoryError разворачивает стек, что позволяет приложению восстанавливаться (несколько) без сбоев.

0

Это зависит от JVM. Я думаю, что Oracle JVM только сбрасывает один раз.

1

Оракул jvm создает кучу дампа только в первом OOM, когда указан этот флаг. Однако вы можете вручную создать несколько кучи heapdumps, если процесс jvm все еще жив и реагирует. Немного по поиску:
-XX:+HeapDumpOnOutOfMemoryError not creating hprof file in OOM