Solaris SMF Обнаруживает Java PermGen?

Есть ли способ обнаружить, что процессу Java не хватает памяти (например, пространство PermGen) и перезапустить его с контрактом SMF?

1 ответ

Решение

Зависит от вашей Java VM. Если вы используете точку доступа VM, вы можете сделать следующее.

Используйте опцию -XX:OnOutOfMemoryError= java cli для отправки сигнала SIGKILL процессу, это заставит SMF запустить его снова, SIGKILL необходим, потому что Java-процесс OutOfMemory не отвечает ни на какие сигналы. Вы можете добавить опцию -XX:-HeapDumpOnOutOfMemoryError, чтобы получить дамп кучи для анализа, хотя это может занять много места.

Документация: http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html

Другие вопросы по тегам