Как собрать трейсы с помощью профилировщика dotTrace?
При высокой загрузке CPU процессом, замедлении работы приложения или зависании процесса для анализа проблемы полезно произвести профилирование и получить трейсы с помощью приложения dotTrace.
Для этого выполните следующие шаги:
Для OC Windows
- Скачайте dotTrace Command-Line Profiler по ссылке https://share.ascon.ru/s/jspz5Mo3e6oftX4.
- Распакуйте zip-архив.
- Запустите и подготовьте приложение (Pilot-ICE, Pilot-ICE Enterprise, Pilot-BIM, Pilot-Server) к воспроизведению проблем производительности.
- Запустите диспетчер задач и узнайте идентификатор диагностируемого процесса (ИД) на вкладке Подробности.
- Создайте папку C:\Snapshots, если такой нет.
- Запустите командную строку Windows (в случае диагностики проблем Pilot-Server – с правами администратора).
-
Вызовите dottrace.exe из папки, куда он был распакован, командой с параметрами:
Где:
dottrace.exe attach 00000 --save-to=c:\Snapshots\snapshot.dtp
- 00000 — ИД диагностируемого процесса,
- c:\Snapshots\snapshot.dtp — путь для записи собранной диагностической информации.
- Переключитесь на диагностируемый процесс и воспроизведите проблемы с производительностью. Для лучшего анализа диагностической информации предпочтительно, чтобы приложение испытывало проблемы с производительностью на протяжении всего времени.
- Переключитесь в командную строку с запущенным dottrace.exe, нажмите Ctrl+C (один раз, второе нажатие Ctrl+C отменит запись диагностической информации).
- Дождитесь окончания записи диагностической информации (об этом будет сообщено в командной строке), заархивируйте содержимое папки C:\Snapshots и отправьте архив в службу поддержки Аскон.
Также можно ознакомиться с документацией https://www.jetbrains.com/help/profiler/.
Для семейства ОС Linux
- Скачайте dotTrace Command-Line Profiler по ссылке https://share.ascon.ru/s/aYocqkRYfD2jo8F.
- Распакуйте архив tar.gz.
- Дайте права на исполнение файлам dottrace, dotTrace.sh, runtime-dotnet.sh в основной папке и файлу dotnet, который находится по пути ./linux-x64/dotnet/.
- Создайте папку snapshots в основной папке, куда был распакован dotTrace Command-Line Profiler.
- Чтобы профилировать приложение .NET Core 3.1 или более поздней версии, необходимо запустить dotTrace Command-Line Profiler с указанием параметров запуска приложения.
- Для остановки процесса профилирования нажмите один раз Ctrl+C.
- Заархивируйте содержимое папки snapshots и приложите архив к запросу, отправленному в службу поддержки Аскон.
Чтобы увидеть полный список доступных опций, запустите инструмент dotTrace Command-Line Profiler без аргументов
./dotTrace.sh
Пример запуска dotTrace с указанием параметров запуска приложения Ascon.Pilot.Daemon
# ./dottrace start --framework=NetCore --save-to= /opt/dotTrace.CommandLineTools.linux-x64.2022.2.4/snapshots/snapshot1.dtp /opt/pilot-server/Ascon.Pilot.Daemon /opt/pilot-server/settings.xml
Где:
- /opt/dotTrace.CommandLineTools.linux-x64.2022.2.4/snapshots/snapshot1.dtp — путь до файла, куда будем сохранять результат профилирования;
- /opt/pilot-server_25.1.0.53184/Ascon.Pilot.Daemon — путь до исполняемого файла приложения;
- /opt/pilot-server/settings.xml — указываем путь до файла settings.xml.
Пример запуска dotTrace с указанием параметров запуска приложения Ascon.Pilot.Daemon в кластерном режиме
# ./dottrace start --framework=NetCore --save-to=/opt/dotTrace.CommandLineTools.linux-x64.2022.2.4/snapshots/snapshot1.dtp /opt/pilot-server/Ascon.Pilot.Daemon -- --pgConnectionString="Host=mypostgres:5432; Username=pilotuser; Password=password; Include Error Detail=true; Pooling=true; Connection Lifetime=0; Keepalive=3; DataBase=configurationdb" --indexPath="/Indexes"
Где:
- /opt/dotTrace.CommandLineTools.linux-x64.2022.2.4/snapshots/snapshot1.dtp — путь до файла, куда будем сохранять результат профилирования;
- /opt/pilot-server_25.1.0.53184/Ascon.Pilot.Daemon — путь до исполняемого файла приложения;
- -- — экранирование dotTrace Command-Line Profiler при необходимости;
- Host=mypostgres:5432; Username=pilotuser; Password=password; Include Error Detail=true; Pooling=true; Connection Lifetime=0; Keepalive=3; DataBase=configurationdb — строка подключения к конфигурационной базе PostgreSQL с параметрами. Подробнее можно ознакомиться в статье Запуск Pilot-Server в кластерном режиме.