Сбор дампа памяти для dotnet-приложения на Linux

Сбор дампа памяти для приложения Ascon.Pilot.Daemon (Pilot-Server for Linux) необходим при диагностировании зависания процесса.

Подготовка окружения

Для того, чтобы снять дамп памяти для dotnet-приложения Ascon.Pilot.Daemon необходимо подготовить окружение.

Проверка версии .NetCore Runtime

  • Проверить какая версия .NetCore Runtime установлена на машине

$ dotnet --list-sdks

или

$ dotnet --info

Если .NetCore Runtime не установлен, его следует установить

Установка .NetCore Runtime

Для того, чтобы установить .NetCore Runtime, воспользуйтесь руководствами Microsoft:

После установки .NetCore Runtime необходимо установить инструмент для снятия дампа

Установка инструмента dotnet-dump

Инструмент dotnet-dump можно установить как глобально в систему так и скопировать в папку с целевым приложением.

Установите dotnet-dump, по руководству Microsoft:

После установки проверьте работоспособность утилиты

$ dotnet-dump --version

Далее, необходимо перейти к расположению утилиты createdump, которая лежит рядом с Ascon.Pilot.Daemon:

$ cd /opt/pilot-server

и задать права на запуск для createdump:

# chmod u+x createdump

Сбор дампа памяти

Запустите утилиту dotnet-dump.

Внимание! Чтобы собрать дамп с помощью dotnet-dump, её необходимо запустить от имени пользователя, запустившего целевой процесс, или от имени привилегированного пользователя. В противном случае средство не сможет установить соединение с целевым процессом.

Перед тем как снять дамп необходимо узнать PID процесса целевого приложения. Посмотреть PID, например, можно с помощью команды

# htop | grep Ascon.Pilot.Daemon

или

# ps aux | grep Ascon.Pilot.Daemon

Запускаем создание дампа:

# dotnet-dump collect -p <PID_of_target_app>

Файл дампа сохранится в расположение Ascon.Pilot.Daemon в формате ./core_YYYYMMDD_HHMMSS

 

назад к списку вопросов