Можно ли выбрать, создавать дамп кучи или нет на лету?

У нас есть приложение, развернутое на сервере WebSphere, работающем в UNIX, и мы столкнулись с двумя проблемами:

  1. зависание системы, которое восстанавливается через несколько минут — для расследования нам понадобится дамп потока (javacore).
  2. зависание системы, которое не восстанавливается и требует перезапуска WebSphere — для расследования нам потребуются дамп потока и дамп кучи.

Проблема в том, что когда происходит зависание системы, мы не знаем, проблема ли это 1 или 2.

В идеале мы хотели бы сначала вручную сгенерировать дамп потока и подождать, пока система восстановится. Если нет, то перед перезапуском WebSphere мы создаем дамп потока и дамп кучи.

Я знаю о команде kill -3 (или kill -QUIT). Команда сгенерирует только дамп потока (если параметр IBM_HEAPDUMP=false) или дамп потока и дамп кучи (если IBM_HEAPDUMP=true). Однако IBM_HEAPDUMP должен быть установлен до запуска WebSphere и не может быть изменен во время работы WebSphere.

Правильно ли я понимаю параметр IBM_HEAPDUMP и команду kill -3?

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


person Andy    schedule 16.05.2012    source источник


Ответы (1)


Ваше понимание согласуется со всем, что я читал.

Однако я считаю, что вы можете добиться желаемого, используя скрипты wsadmin. В этой статье описывается принудительное использование javacores и heapdump на платформе Windows где команда kill -3 недоступна, но те же самые команды можно запустить в любой системе WebSphere.

Из wsadmin или скрипта wsadmin выполните:

set jvm [$AdminControl completeObjectName type=JVM,process=server1,*]​
$AdminControl invoke $jvm generateHeapDump​
$AdminControl invoke $jvm dumpThreads​
person dbreaux    schedule 16.05.2012
comment
Спасибо большое. Прочитав ваш ответ, я также нашел эту ссылку о создании дампов кучи из WebSphere: www-01.ibm.com/support/docview.wss?uid=swg21384926. Он содержит более подробные пояснения. - person Andy; 16.05.2012