Снятие дампов памяти (heap) и потоков

В некоторых очень редких случаях AggreGate Server или AggreGate Client могут перестать отвечать из-за потери доступа к памяти, 100% нагрузки на процессор или блокировки потоков. Такие ситуации наиболее вероятно могут произойти в версиях Предпросмотра AggreGate.

В большинстве случаев инженеры Tibbo решают такие вопросы через удалённое соединение с машиной, на которой запущен AggreGate. Однако если удаленный доступ ограничен, например, из-за соображений безопасности, клиентам приходится осуществлять снятие дампов потоков и памяти (heap), чтобы передать их Tibbo для последующего анализа.

Создание отслеживания стека зависшего / неотвечающего AggreGate Server или AggreGate Client

Для создания дампа потоков, использумого для диагностирования неэффективной блокировки потоков и их зависания:

  • 1. Проверьте версию Java Runtime Environment (JRE), используемую для работы AggreGate при помощи %AggreGate Server Folder%/jre/bin/java.exe -version
  • 2. Установите комплект разработчика Java (JDK) той же версии, что JRE, используемая на AggreGate
  • 3. Выясните идентификатор Процесса (PID) процесса AggreGate:
    • Используя Task Manager в Windows
    • Путём запуска ps ax|grep java на Linux
  • 4. Запустите %JDK Folder%/bin/jstack -l PID > stack.txt
  • 5. Отправьте конечный файл stack.txt сотрудникам AggreGate для анализа

Создание дампа памяти (heap) AggreGate Server или AggreGate Client с высокой загрузкой памяти java

Примечание 1: Использование памяти AggreGate Server можно отследить при помощи Датчика использования памяти сервера.

Примечание 2: Использование памяти AggreGate Client можно отследить при помощи утилиты JVisualVM, которая входит в комплект разработчика Java (JDK).

Примечание 3: Утечку памяти можно успешно определить, если использование памяти сервера постоянно росло в течение нескольких дней и выросло до 200-300% начального использования памяти, зарегистрированного после нескольких запусков сервера.

Примечание 4: Создание графика истории Датчик использования памяти сервера поможет ясно увидеть растущее использование памяти.

Для создания дампа памяти, который используется для диагностирования её утечек:

  • 1. Установите комплект разработчика Java (JDK) той же версии, что JRE, используемая на AggreGate
  • 2. Выясните идентификатор Процесса (PID) процесса AggreGate:
    • Используя Task Manager в Windows
    • Путём запуска ps ax|grep java на Linux
  • 3. Запустите команду jmap -dump:format=b,file=dump.bin PID
  • 4. Сожмите конечный файл dump.bin и перешлите сотрудникам AggreGate для анализа