Ferramentas de Diagnóstico de Desempenho

Por Mike Rousos

Este artigo lista as ferramentas para diagnosticar problemas de desempenho no ASP.NET Core.

Ferramentas de Diagnóstico do Visual Studio

As ferramentas de criação de perfil e de diagnóstico integradas ao Visual Studio são um bom lugar para começar a investigar problemas de desempenho. Essas ferramentas são poderosas e práticas de usar no ambiente de desenvolvimento do Visual Studio. As ferramentas permitem a análise do uso da CPU, do uso da memória e dos eventos de desempenho em aplicativos ASP.NET Core. O fato de ser integrada facilita a criação de perfil no momento do desenvolvimento.

Mais informações estão disponíveis na documentação do Visual Studio.

Application Insights

O Application Insights fornece dados de desempenho detalhados para seu aplicativo. O Application Insights coleta automaticamente dados sobre taxas de resposta, taxas de falha, tempos de resposta de dependência e muito mais. O Application Insights dá suporte ao registro em log de eventos personalizados e métricas específicas para seu aplicativo.

O Azure Application Insights oferece várias maneiras de fornecer insights sobre aplicativos monitorados:

  • O Mapa do Aplicativo ajuda a identificar gargalos de desempenho ou pontos de acesso com falha em todos os componentes dos aplicativos distribuídos.

  • O Azure Metrics Explorer é um componente do portal do Microsoft Azure que permite plotar gráficos, correlacionar tendências visualmente e investigar picos e quedas nos valores das métricas.

  • Folha de desempenho no portal do Application Insights:

    • Mostra os detalhes de desempenho de várias operações no aplicativo monitorado.
    • Permite focar em uma única operação para verificar todas as partes/dependências que contribuem para uma longa duração.
    • O Profiler pode ser invocado aqui para coletar rastreamentos de desempenho sob demanda.
  • O Azure Application Insights Profiler permite a criação de perfil regular e sob demanda de aplicativos .NET. O portal do Azure mostra rastreamentos de desempenho capturados com pilhas de chamadas e caminhos críticos. Os arquivos de rastreamento também podem ser baixados para análise mais profunda usando o PerfView.

O Application Insights pode ser usado em uma variedade de ambientes:

  • Otimizado para funcionar no Azure.
  • Funciona em ambientes de produção, desenvolvimento e preparo.
  • Funciona localmente no Visual Studio ou em outros ambientes de hospedagem.

Para obter mais informações sobre o monitoramento baseado em código, consulte Application Insights para ASP.NET Core. Para obter mais informações sobre o monitoramento sem código, consulte Monitorar o desempenho do Serviço de Aplicativo do Azure.

PerfView

O PerfView é uma ferramenta de análise de desempenho criada pela equipe do .NET principalmente para diagnosticar problemas de desempenho do .NET. O PerfView permite a análise do uso da CPU, da memória e do comportamento de GC, dos eventos de desempenho e do tempo de resposta.

Para obter mais informações sobre o PerfView, consulte o guia do usuário disponível na ferramenta ou no GitHub.

Windows Performance Toolkit

O WPT (Windows Performance Toolkit) consiste em dois componentes: WPR (Windows Performance Recorder) e WPA (Windows Performance Analyzer). As ferramentas produzem perfis de desempenho detalhados dos aplicativos e sistemas operacionais Windows. O WPT tem maneiras mais avançadas de visualizar dados, mas sua coleta de dados é menos eficiente do que a do PerfView.

PerfCollect

Embora o PerfView seja uma ferramenta útil de análise de desempenho para cenários do .NET, ele só é executado no Windows. Você não pode usá-lo para coletar rastreamentos de aplicativos ASP.NET Core em execução em ambientes Linux.

O PerfCollect é um script bash que usa ferramentas nativas de criação de perfil do Linux (Perf e LTTng) para coletar rastreamentos no Linux que podem ser analisados pelo PerfView. O PerfCollect é útil quando problemas de desempenho aparecem em ambientes Linux em que o PerfView não pode ser usado diretamente. Em vez disso, o PerfCollect pode coletar rastreamentos de aplicativos .NET Core que são analisados em um computador Windows usando o PerfView.

Mais informações sobre como instalar e começar a usar o PerfCollect estão disponíveis no GitHub.

Outras Ferramentas de Desempenho de Terceiros

A lista abaixo mostra algumas ferramentas de desempenho de terceiros que são úteis para investigação de desempenho de aplicativos .NET Core.