Дампы памяти

Материал из Документация Ключ-АСТРОМ

Применение Ключ-АСТРОМ / Профилирование и оптимизация / Дампы памяти

Ключ-АСТРОМ может хранить и анализировать дампы памяти для приложений Java, .NET и Node.js.

ЕдиныйАгент хранит дампы памяти локально в течение ограниченного времени на диске контролируемого компьютера сервера приложений.

Если АктивныйШлюз настроен, то ЕдиныйАгент автоматически загружает дампы памяти в АктивныйШлюз, который действует как долгосрочный центр хранения дампов памяти. Такой подход гарантирует, что дампы памяти будут доступны только пользователям, имеющим доступ к сетевому расположению вашего АктивногоШлюза. Эта мера предосторожности обеспечивает дополнительный уровень безопасности, чтобы гарантировать, что никакие персональные данные не покинут ваш центр обработки данных, если вы не настроите его соответствующим образом.

182.png

Запуск дампов памяти

Чтобы запустить дамп памяти

  1. Перейдите на страницу дампов памяти :
    • На странице объекта, который вы хотите проанализировать, выберите Дополнительно ( … ) > Сведения о дампе памяти .
    • Перейдите в раздел Профилирование > Дампы памяти .
  2. Выберите процесс, который вы хотите проанализировать, и нажмите на кнопку Запустить дамп , чтобы сгенерировать новый дамп памяти. Генерация дампа памяти занимает несколько минут. Требуемое время сильно варьируется в зависимости от типа приложения. Приложения Java, имеющие несколько ГБ динамической памяти, могут занять несколько минут; дампы меньшего размера доступны практически сразу. Java (Ключ-АСТРОМ использует интерфейс инструментов JVM (JVM TI) для генерации дампов памяти. По этой причине ваша JVM может зависнуть во время генерации дампа памяти. Пожалуйста, перезапустите ваше Java-приложение после запуска дампа памяти.)
  3. Через несколько минут обновите страницу. Вновь созданный дамп теперь отображается в списке.

Загрузить и просмотреть дампы памяти

Для загрузки дампов памяти

  1. Перейдите на страницу дампов памяти :
    • На странице объекта, который вы хотите проанализировать, выберите Дополнительно ( … ) > Сведения о дампе памяти .
    • Перейдите в раздел Профилирование > Дампы памяти .
  2. Разверните запись дампа памяти.
  3. В списке ссылок для загрузки выберите АктивныйШлюз, с которого вы хотите загрузить дамп памяти, и нажмите кнопку Загрузить . Если вы не можете загрузить дамп памяти через пользовательский интерфейс, загрузите файл вручную по локальному пути, указанному в веб-интерфейсе. Обратите внимание, что дампы памяти, которые ЕдиныйАгент хранит локально, доступны в течение ограниченного времени; когда ЕдиныйАгент периодически очищает каталог, размер файла может быть 0 байт.

В случае приложений Java загрузка обеспечивает дамп памяти в hprof формате, который можно проанализировать с помощью ряда инструментов, включая анализатор памяти Eclipse и VisualVM. IBM JVM не поддерживает hprof, но имеет свой собственный формат, называемый IBM Portable Heap Dump (PHD). Его также можно проанализировать с помощью анализатора памяти Eclipse.

Дампы памяти Node.js можно открыть в интегрированном инструменте анализа снимков кучи памяти Google Chrome.

Дампы памяти .NET можно открыть в PerfView или Visual Studio.

Ограничения

  • Дампы памяти .NET не поддерживаются в контейнерах на базе Alpine Linux.
  • Загрузка в АктивныйШлюз не поддерживается для модуля кода Java ЕдиныйАгент в автономном режиме.
  • Загрузка дампа памяти не поддерживается для мониторинга только приложений Kubernetes.

Часто задаваемые вопросы

Если я включу анализ дампа памяти на нескольких АктивныхШлюзах, какой АктивныйШлюз будет выполнять дамп памяти?

ActiveGate имеют автоматически назначенный приоритет. Если более одного ActiveGate имеют одинаковый приоритет, конечная точка выбирается случайным образом.

Что произойдет, если передача файла на АктивнйШлюз не удалась?

ЕдиныйАгент пытается отправить список дампов всем доступным конечным точкам, пока не найдет работающую. Этот процесс повторяется до тех пор, пока не будет успешным или пока дампы не будут удалены задачами старения (например, если их слишком много или если они слишком старые).

Что произойдет, если в АктивномШлюзе закончится место для дампов памяти?

АктивныйШлюз сначала удалит устаревшие дампы. Если устаревших дампов нет, АктивныйШлюз удалит самые старые дампы.

Можно ли настроить, где ЕдиныйАгент будет хранить дампы памяти?

Да. ЕдиныйАгент хранит дампы памяти локально и гарантирует, что дампы не покинут вашу локальную сеть. Вы можете настроить местоположение дампов памяти .

Конечный пользователь не может получить доступ ни к одной из конечных точек АктивногоШлюза. Могу ли я по-прежнему предоставлять доступ к файлу дампа памяти?

Да. Поскольку время от времени конечная точка АктивногоШлюза может быть недоступна конечному пользователю, АктивныйШлюз может иметь несколько IP-адресов, а значит и несколько конечных точек. Если все существующие конечные точки недоступны конечному пользователю одновременно, вы все равно можете предоставить доступ к файлу дампа памяти.

  • Вы можете включить удаленный доступ к АктивномуШлюзу, изменив публичные конечные точки.
  • Если удаленный доступ к АктивномуШлюзу невозможен, вы можете вручную загрузить файл дампа памяти с хоста АктивногоШлюза.
    • Для доступа к хосту АктивногоШлюза используйте протокол, позволяющий передавать файлы (например, sFTP или SSH).
    • Чтобы загрузить файл дампа памяти, вам необходимо узнать местоположение файла .
    • Чтобы идентифицировать дамп памяти, распакуйте его файл через протокол, включающий summary.json(например, sFTP или SSH).