@hax
junior developer

Какие тулы для профилирования ASP.NET Core приложений в докере можете посоветовать?

Всем привет! Появилась необходимость изучить производительность отдельных эндпоинтов в ASP.NET Core Web API, работающего в докер-контейнере. Необходимо изучить какие методы жрут больше всего CPU/RAM и какие методы больше всего выполняются. Докер-конейнер находится в кубернетесе на удалённой машине.
Сейчас рассматриваю следующие варианты:
1) dotTrace. Пробовал запускать через dotTrace.sh внутри контейнера и читать снепшот через Rider. Не очень информативный получился снепшот (хотя может быть я просто я открывал его как-то не так :))
2) dotnet-trace.
3) Visual Studio Performance Profiler - пока что не разобрался как можно подключиться к remote process в докере в VS Community 2019.

Можете подсказать на какую тулу стоит потратить больше времени для изучения? Какая из них даст ту статистику, которая мне необходима?
  • Вопрос задан
  • 594 просмотра
Решения вопроса 1
firedragon
@firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.
Пригласить эксперта
Ответы на вопрос 1
Докер-конейнер находится в кубернетесе на удалённой машине.

Это всё осложняет. Обычно, на продакшене профилировать не стоит - лучше написать нагрузочные тесты и запускать в разработческом окружении
Как вариант для dotnet-trace
  1. Базовый образ в докере должен быть SDK 3.0+
  2. Устанавливаем dotnet-trace в докере
    RUN dotnet tool install --global dotnet-trace
    ENV PATH $PATH:/root/.dotnet/tools


  3. После запуска приложения в контейнере (писать в консоль в докере):
    dotnet-trace collect --process-id $(pidof dotnet) --providers Microsoft-DotNETCore-SampleProfiler


  4. Когда всё - жмём Ctrl+C, в папке с приложением будет файл trace.nettrace


https://stackoverflow.com/questions/59364119/net-c...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы