Диагностические инструменты и журналы

Вы просматриваете документацию Apigee Edge .
Перейдите к документации Apigee X.
информация

В этом разделе обсуждаются сетевые инструменты, инструменты JVM и журналы диагностики, которые можно использовать для устранения проблем с сетью и JVM в Apigee Edge.

Утилита анализа пакетов TCP/IP (tcpdump)

Инструмент tcpdump — это инструмент анализа пакетов командной строки, который позволяет перехватывать или фильтровать пакеты TCP/IP, получаемые или передаваемые по сети. Он доступен в операционных системах на базе Linux/Unix. Вы можете установить эту утилиту с помощью yum следующим образом:

yum install tcpdump

Инструмент tcpdump полезен для устранения неполадок, связанных с сетью или SSL. Например:

  • 502 ошибки неверного шлюза (вызванные исключением EOF)
  • 503 Ошибки недоступности службы
  • Сбои SSL-квитирования

Чтобы устранить любую из этих проблем, необходимо сначала определить пару компонентов, между которыми произошла ошибка. В случае Edge это может быть одна из следующих пар:

  • Клиентское приложение и маршрутизатор
  • Маршрутизатор и процессор сообщений
  • Процессор сообщений и внутренний сервер

Как только вы определите проблемную пару компонентов, вы сможете перехватить сетевые пакеты с помощью tcpdump на одном или обоих этих компонентах.

Захват пакетов, отправленных/полученных от определенного хоста, с помощью tcpdump

Используйте следующую команду tcpdump, чтобы перехватить все пакеты, отправленные или полученные от указанного хоста (IP-адреса), и сохранить информацию в указанном файле:

tcpdump -i any -s 0 host <IP address> -w <File name>

Где:

Параметр Описание
(интерфейс) указывает интерфейс, с которого должны быть перехвачены пакеты. Использование значения «любой» позволяет перехватывать пакеты со всех интерфейсов.
(snarf/snaplen) определяет количество каждого пакета, который необходимо перехватить. Использование значения 0 (нуля) позволяет захватить весь пакет.
IP-адрес это IP-адрес хоста, для которого мы хотим перехватывать пакеты
Имя файла это имя файла, в который должен быть записан tcpdump

Пример

Допустим, вы хотите перехватить пакеты между процессором сообщений и внутренним сервером:

  1. Войдите в систему процессора сообщений.
  2. Определите IP-адрес внутреннего сервера (предположим, это 22.22.22.22), для которого мы хотим перехватывать пакеты.

Используйте следующую команду для захвата сетевых пакетов хоста с определенным IP-адресом:

tcpdump -i any -s 0 host 22.22.22.22 -w rmp-123.pcap

Если внутренний сервер разрешает несколько IP-адресов, используйте имя хоста внутреннего сервера в команде tcpdump, как показано ниже:

tcpdump -i any -s 0 host <Hostname> -w rmp-123.pcap

Если имеется несколько внутренних серверов с разными IP-адресами (22.22.22.22, 33.33.33.33 и 44.44.44.44), используйте команду tcpdump ниже:

tcpdump -i any -s 0 host 22.22.22.22 or host 33.33.33.33 or host 44.44.44.44 -w rmp-123.pcap

Анализ tcpdumps

Вы можете просмотреть или проанализировать tcpdumps с помощью команды tcpdump или инструмента с графическим интерфейсом Wireshark .

Ссылки

Дампы кучи

Дампы кучи — это снимок памяти процесса Java. Они содержат информацию об объектах и ​​классах Java в куче на момент сбора дампа кучи. Обычно они довольно большие по размеру: от нескольких 100 МБ до нескольких ГБ.

Дамп кучи очень полезен, когда Java-процесс, такой как Message Processor, показывает:

  • Высокое использование памяти
  • Ошибка вне памяти

Создание дампа кучи для процесса Java

Java предоставляет утилиту jmap , которая позволяет генерировать статистику памяти или дампы кучи запущенного процесса Java.

Используйте следующую команду jmap для создания дампа кучи процесса Java:

sudo -u apigee <JAVA_HOME>/bin/jmap -dump:live,format=b,file=<filename> <pid>

Где:

Параметр Описание
JAVA_HOME Это каталог установки Java
имя файла Имя файла, в который будет записан дамп кучи
pid Идентификатор процесса приложения Java, дамп головы которого необходимо сохранить.

Пример

Допустим, процессор сообщений mp-east сильно использует память или выдает ошибки OutOfMemory. Определите идентификатор процесса процессора сообщений с помощью команды ps в операционной системе Unix. Допустим, это 24569.

Запустите утилиту jmap следующим образом, чтобы создать дамп кучи:

sudo -u apigee <JAVA_HOME>/bin/jmap -dump:live,format=b,file=mp-east-heapdump.bin 24569

Анализ дампов кучи

Дампы кучи можно анализировать с помощью Eclipse MAT (инструмент анализатора памяти), чтобы определить потенциальные утечки памяти или определить, какие объекты Java приводят к высокому использованию памяти.

Ссылки

Как собрать дамп кучи

утилита jmap

справочная страница jmap

Инструмент анализатора памяти (MAT)


Дампы тредов

Дамп потока — это снимок состояния всех потоков запущенного процесса Java. Состояние каждого потока представлено содержимым его стека, называемым трассировкой стека. Некоторые потоки будут частью работающего Java-приложения, а другие будут внутренними потоками JVM.

Дамп потока показывает информацию о каждом из действий потоков приложения. Эта информация может быть очень полезна для:

  • Диагностика таких проблем, как скачки нагрузки на процессор, медленное время отклика или не отвечающие приложения Java.
  • Оптимизация производительности приложений и JVM

Создание дампов потоков

Дамп потока для процесса Java можно создать с помощью утилиты jstack, как показано ниже:

sudo -u apigee <JAVA_HOME>/bin/jstack -l <pid> > <filename>

Где:

Параметр Описание
JAVA_HOME Это каталог установки Java.
pid Идентификатор процесса приложения Java, дамп потока которого вы хотите записать.
имя файла Имя файла, в который будет записан дамп потока.

Пример

Чтобы создать дамп потока для процесса с идентификатором 37320 на процессоре сообщений mp-east , используйте следующую команду:

sudo -u apigee <JAVA_HOME>/bin/jstack -l 37320 > /opt/apigee/edge-message-processor/mp-east-threadDump.txt

Согласно приведенному выше примеру, дамп потока процесса будет сохранен в файле /opt/apigee/edge-message-processor/mp-east-threadDump.txt.

Анализ дампов потоков

Вы можете просмотреть дампы потоков в любом текстовом редакторе, например vi (Linux), блокноте (Windows). Обратитесь к дампу потока для получения подробной информации о различных разделах дампа потока и о том, как интерпретировать информацию.

Ссылки