создание дампа кучи на веб-сфере - PullRequest
0 голосов
/ 05 июля 2018

Я включил автоматическую генерацию дампа кучи в приложении Websphere сервер 8.5.5 по шагам ниже.

Appserver >> определение процесса >> записи среды

Добавлено ниже 2 записей.

IBM_HEAPDUMP = TRUE
IBM_HEAPDUMP_OUTOFMEMORY = TRUE

Я просто хочу знать, как часто будет создаваться дамп кучи? пример из 15 запросов. 10 запросов мы столкнулись с ошибкой памяти: Java куча пространства. Дамп кучи будет генерироваться 1 раз или 10 раз?

1 Ответ

0 голосов
/ 09 июля 2018

Нет такой функции, использующей переменные окружения.

IBM_HEAPDUMP полезно установить только на false для полного отключения heapdumps. Установка true избыточна, потому что это значение по умолчанию.

То же самое относится к IBM_HEAPDUMP_OUTOFMEMORY. Получение heapdump на OutOfMemoryError включено по умолчанию.

Вы можете найти больше информации об этих переменных среды здесь: https://www.ibm.com/support/knowledgecenter/SSYKE2_8.0.0/com.ibm.java.vm.80.doc/docs/env_j9.html

Обратите внимание, что envars для управления дампами больше не рекомендуется в пользу -Xdump: https://www.ibm.com/support/knowledgecenter/SSYKE2_8.0.0/com.ibm.java.vm.80.doc/docs/dump_agents.html

С учетом вышесказанного, нет такой функции, как автоматическое создание heapdumps без какого-либо триггера. Вы можете найти различные способы запроса heapdumps здесь: https://publib.boulder.ibm.com/httpserv/cookbook/Troubleshooting-Troubleshooting_WebSphere_Application_Server-Troubleshooting_WAS_Traditional.html#Troubleshooting-Troubleshooting_WAS_Traditional-Request_Heap_Dump

Самый простой способ - это написать сценарий. Вы не указали, на какой операционной системе вы работаете, но я предполагаю, что она основана на POSIX с IBM Java, поэтому я бы использовал Java Surgery со сценарием оболочки:

#!/bin/sh
while true; do
  java -jar surgery.jar -command HeapDump -pid $1
  sleep $2
done

https://www.ibm.com/developerworks/community/groups/service/html/communityview?communityUuid=7d3dc078-131f-404c-8b4d-68b3b9ddd07a

...