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