Вы просматриваете документацию по 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
Чтобы записать все пакеты, отправленные на указанный хост (IP-адрес) или полученные от него, и сохранить информацию в указанном файле, используйте следующую команду tcpdump:
tcpdump -i any -s 0 host <IP address> -w <File name>
Где:
| Параметр | Описание |
| -i | (интерфейс) – указывает интерфейс, с которого должны быть получены пакеты. Значение "any" позволяет получать пакеты со всех интерфейсов. |
| -s | (snarf/snaplen) указывает, сколько данных каждого пакета нужно захватить. Если указать значение 0, будет захвачен весь пакет. |
| IP-адрес | – IP-адрес хоста, для которого нужно захватить пакеты. |
| Имя файла | название файла, в который tcpdump должен записать данные. |
Пример
Предположим, вам нужно перехватить пакеты между Message Processor и внутренним сервером.
- Войдите в систему на компьютере Message Processor.
- Определите 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
Анализ дампов трафика TCP
Вы можете просматривать и анализировать tcpdump с помощью команды tcpdump или инструмента с графическим интерфейсом пользователя Wireshark.
Ссылки
Дампы кучи
Дампы кучи – это снимки памяти процесса Java. Они содержат информацию об объектах и классах Java в куче в момент сбора дампа кучи. Обычно они имеют большой размер – от нескольких сотен мегабайт до нескольких гигабайт.
Дамп кучи очень полезен, когда процесс Java, например Message Processor, показывает:
- Высокое использование памяти
- OutofMemoryError
Как создать дамп кучи для процесса Java
В Java есть утилита jmap, которая позволяет создавать статистику памяти или дампы кучи для запущенного процесса Java.
Чтобы создать дамп кучи процесса Java, используйте следующую команду jmap:
sudo -u apigee <JAVA_HOME>/bin/jmap -dump:live,format=b,file=<filename> <pid>
Где:
| Параметр | Описание |
| JAVA_HOME | Каталог установки Java |
| filename | Имя файла, в который будет записан дамп кучи. |
| идентификатор | Идентификатор процесса приложения Java, для которого нужно создать дамп кучи. |
Пример
Предположим, что процессор сообщений mp-east использует много памяти или выдает ошибки OutOfMemory. Определите идентификатор процесса Message Processor с помощью команды 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, которые приводят к высокому использованию памяти.
Ссылки
Дампы потоков
Дамп потоков – это снимок состояния всех потоков выполняющегося процесса Java. Состояние каждого потока представлено содержимым его стека, которое называется трассировкой стека. Некоторые потоки будут частью запущенного приложения Java, а другие – внутренними потоками JVM.
Дамп потока содержит информацию о действиях каждого потока приложения. Эта информация может быть очень полезна для:
- Диагностика проблем, таких как скачки загрузки ЦП, медленное время отклика или не отвечающие на запросы приложения Java.
- Как оптимизировать работу приложения и виртуальной машины Java
Создание дампов потоков
Дамп потоков для процесса Java можно создать с помощью утилиты jstack, как показано ниже:
sudo -u apigee <JAVA_HOME>/bin/jstack -l <pid> > <filename>
Где:
| Параметр | Описание |
| JAVA_HOME | Каталог установки Java. |
| идентификатор | Идентификатор процесса приложения Java, дамп потоков которого вы хотите получить. |
| filename | Имя файла, в который будет записан дамп потока. |
Пример
Чтобы создать дамп потока для идентификатора процесса 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). Подробную информацию о разных разделах дампа потоков и о том, как интерпретировать данные, можно найти в статье Дамп потоков.