Вы просматриваете документацию 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 |
Пример
Допустим, вы хотите перехватить пакеты между процессором сообщений и внутренним сервером:
- Войдите в систему процессора сообщений.
- Определите 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 приводят к высокому использованию памяти.
Ссылки
Инструмент анализатора памяти (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). Обратитесь к дампу потока для получения подробной информации о различных разделах дампа потока и о том, как интерпретировать информацию.