Какова хорошая стратегия для диагностики сервера приложений Java, который перестал отвечать?

У меня есть установка OpenSSO, работающая на Glassfish. Все достаточно просто с минимальной настройкой, чтобы система работала. Я начал сталкиваться с проблемами, когда сервер перестанет отвечать. Он будет принимать запросы, но зависать на ответы. Примерно через двадцать минут все запросы завершаются молниеносно, и все возвращается в норму. К сожалению, журналы не показывают ничего необычного, что могло бы вызвать это.

То, что я ищу, это общая стратегия. Как вы будете заниматься диагностикой и устранением подобных проблем на серверах приложений Java?

Спасибо!

2 ответа

Решение

Вот несколько общих советов по диагностике проблем Java.

  • Последние JDK поставляются с VisualVM. Вы можете прикрепить это к работающему экземпляру JVM, чтобы контролировать поток и использование памяти.
  • Если вы работаете в Linux, вы можете использовать kill -3, чтобы получить дамп потока и найти взаимоблокировки с помощью Thread Dump Analyzer.
  • Посмотрите, какую информацию Glassfish может предоставить через JMX. Затем вы можете использовать JConsole, чтобы присоединиться к процессу и просмотреть информацию JMX во время выполнения.
  • Вы упоминаете, что журналы ничего не показывают. Если это повторяющаяся проблема, возможно, вам следует увеличить уровень журнала.

Я слышал хорошие вещи о Glassbox, и есть презентация об использовании Glassbox с Glassfish плюс другие варианты.

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