Сбор дампа памяти для 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