Вы просматриваете документацию Apigee Edge .
Перейдите в документацию Apigee X.info
В этой теме рассматриваются сетевые инструменты, инструменты JVM и диагностические журналы, которые можно использовать для устранения неполадок, связанных с сетью и JVM в Apigee Edge.
Утилита для анализа TCP/IP-пакетов (tcpdump)
Инструмент tcpdump — это утилита командной строки для перехвата и фильтрации TCP/IP-пакетов, принимаемых или передаваемых по сети. Он доступен для операционных систем Linux/Unix. Установить эту утилиту можно с помощью yum следующим образом:
yum install tcpdump
Инструмент tcpdump полезен для устранения неполадок, связанных с сетью или SSL. Например:
- Ошибка 502 Bad Gateway (вызвана исключением EOF)
- Ошибки 503 «Сервис недоступен»
- Сбои при установлении SSL-соединения
Для устранения любой из этих проблем необходимо сначала определить пару компонентов, между которыми возникла ошибка. В случае с Edge это может быть одна из следующих пар:
- Клиентское приложение и маршрутизатор
- Маршрутизатор и процессор сообщений
- Обработчик сообщений и серверная часть
После того как вы определите проблемную пару компонентов, вы можете перехватить сетевые пакеты с помощью tcpdump на одном или обоих из этих компонентов.
Захват пакетов, отправленных на/полученных от определенного хоста, с помощью tcpdump.
Используйте следующую команду tcpdump для захвата всех пакетов, отправленных на указанный хост (IP-адрес) или полученных с него, и сохранения информации в указанном файле:
tcpdump -i any -s 0 host <IP address> -w <File name>
Где:
| Параметр | Описание |
| -я | (интерфейс) указывает интерфейс, с которого следует захватывать пакеты. Использование значения «any» позволяет захватывать пакеты со всех интерфейсов. |
| -с | (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
Вы можете просматривать или анализировать дампы tcpdump с помощью команды tcpdump или графического инструмента Wireshark .
Ссылки
Дампы кучи
Дампы кучи — это снимки памяти Java-процесса. Они содержат информацию об объектах и классах Java, находящихся в куче на момент создания дампа. Обычно они довольно большие по размеру, варьируясь от нескольких сотен МБ до нескольких ГБ.
Дамп кучи очень полезен, когда Java-процесс, например, обработчик сообщений, отображает следующее:
- Высокое потребление памяти
- Ошибка нехватки памяти
Создание дампа кучи для процесса Java
В Java есть утилита jmap , которая позволяет генерировать статистику памяти или дампы кучи запущенного процесса Java.
Для создания дампа кучи Java-процесса используйте следующую команду jmap:
sudo -u apigee <JAVA_HOME>/bin/jmap -dump:live,format=b,file=<filename> <pid>
Где:
| Параметр | Описание |
| JAVA_HOME | Это каталог установки Java? |
| имя файла | Это имя файла, в который будет записан дамп кучи. |
| ПИД | Это идентификатор процесса 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 (Memory Analyzer Tool), чтобы определить потенциальные утечки памяти или выявить объекты Java, которые приводят к высокому потреблению памяти.
Ссылки
Инструмент анализа памяти (MAT)
Дампы потоков
Дамп потоков — это снимок состояния всех потоков запущенного Java-процесса. Состояние каждого потока отображается вместе с содержимым его стека, называемым трассировкой стека. Некоторые потоки будут частью запущенного Java-приложения, а другие — внутренними потоками JVM.
Дамп потоков предоставляет информацию о работе каждого потока приложения. Эта информация может быть очень полезна для:
- Диагностика таких проблем, как скачки загрузки ЦП, медленное время отклика или зависание Java-приложений.
- Оптимизация производительности приложения и JVM.
Создание дампов потоков
Дамп потоков для процесса Java можно сгенерировать с помощью утилиты jstack, как показано ниже:
sudo -u apigee <JAVA_HOME>/bin/jstack -l <pid> > <filename>
Где:
| Параметр | Описание |
| JAVA_HOME | Это каталог установки Java. |
| ПИД | Это идентификатор процесса 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) или notepad (Windows). Подробную информацию о различных разделах дампа потоков и способах интерпретации информации см. в разделе «Дамп потоков».