Как устранить неполадки, связанные с зависанием потока в WebSphere Application Server?
Я вижу, что на сервере приложений websphere есть зависания. Как я могу устранить эту проблему? Какую документацию я должен отправить разработчику приложения? Благодарю.
2 ответа
Самым важным является стек потоков - он должен отображаться с сообщением, указывающим на зависший поток, и он сообщит вам, что этот поток делал.
Этого само по себе может быть недостаточно, особенно если этот поток ожидает другого потока. В этом случае вам может понадобиться дамп потока. Это может быть вызвано "kill -3" для идентификатора процесса в системах, отличных от Windows (мне нужно было бы провести дополнительное исследование, чтобы рассказать вам эквивалентный процесс в Windows, хотя есть инструменты, которые могут имитировать "kill -3") и сервер также может быть настроен на это, когда он обнаруживает зависший поток, используя системное свойство JVM com.ibm.websphere.threadmonitor.dump.java (устанавливается либо в "true", либо в целочисленное значение, представляющее максимальное число дампы, которые вы хотите).
Дамп потока будет идти в файл с именем "javacore...txt" ("..." будет длинной строкой, представляющей такие вещи, как временная метка), кроме как в Solaris, где он будет идти к native_stdout.log сервера. Javacore имеет гораздо больше, чем просто стеки потоков, поэтому вы можете найти "Детали потока", чтобы быстро найти этот раздел. Вам нужно будет найти имя / стек потока в журнале сервера, чтобы выяснить, какой поток завис, и перейти оттуда.
Если вы испытываете проблемы с производительностью, зависанием или высокой загрузкой ЦП в WebSphere Application Server, команда поддержки IBM задокументировала процедуру сбора данных, необходимых для диагностики и устранения проблем. Эта процедура основана главным образом на
- включение сервера приложений verboseGC
- запуск сценария во время проблемы, который собирает 3 javacores для проблемной JVM
В конце этой процедуры вам необходимо собрать:
- *.tar.gz файл, сгенерированный скриптом
- javacores, созданные сценарием
- логи сервера (SystemOut.log, native_stderr.log,...)
и отправьте результаты в службу поддержки IBM.
Чтобы получить сценарий и получить дополнительную информацию об этой процедуре, предлагаю ознакомиться со следующими статьями:
Аналогичный документ существует и для платформы AIX.